我有两行代码 char *p="abc"; delete [] p; 这代码载gcc里面变异没什么问题,但是在 vc6.0里面就报错。 请问这是什么原因呢? 希望大家帮我解释一下,谢谢! :?: :oops: :cry:
以下是对const char * const, const char *, char * const, char * 与char []的分析比较。
[code]
#include
请问以下三个定义的区别(尤其是第一个和第二个): const char *p1; char const *p2; char * const p3; 谢谢!
环境:Redhat AS4, gcc version 3.4.3 我定义了一个函数: int do_cmd(int a, const char *args[], int num) { ... } 在另一个函数中调用do_cmd: int get_cmd() { char *argument[100]; /* 为argument赋值 */ ...... do_cmd(a, argument, 100); } 为什么编译的时候会出现这样的warning: warning: passing arg 2 of pointer to function from incompatible pointer type 虽然不编译还是可以通过,不影响程序使用...
void example(const char *s) { if( s[0] != '0' ) // line 1 { s[0] = '0'; // line 2 } } 请问这样使用会不会出现问题 对于line 1,我编译程序的时候系统提示我: An expression of type "const char" cannot be modified. 我觉得象上面那样使用应该没有什么问题,但是编译不能通过
const unsigned char SET_NB_NORMAL = '0x10'; 编译时一直报 “ warning: multi-character character constant” 接口func(unsigned char a), 怎么修改?我不想用指针啊!!
char *const *(*next)(); 这条语句是expert for c programming中一个例子,但理解的不是很透。 我的理解是这样的: (*next)()这是指向函数的指针。 char * const 我理解是指向char类型的常量指针。 中间那个*号是什么作用? 谢谢!
error: no match for 'operator+' in 'strlen(const char*)() + 1' 指向了下面这一行 pmaster_info->stopbit = (char) key_word[strlen(key_word) + 1]; 改成 pmaster_info->stopbit = (char) key_word[sizeof(key_word) ]; 后不报错,这是怎么回事?