char*作为形参
char*作为形参时遇到的问题
关于char还有一个特殊的语言就是char *,它在C/C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\0'为结束的字符串。
char *p = "abcd"; 是可以通过编译的。会默认在结尾加入'\0' 。但如果用 signed char *p = "abcd"; 还是 unsigned char *p = "abcd";都是不能通过编译的。
例如:
如果有函数void A(const char* a)和void A(const int& a)。如果有变量char a='\n'对于其的调用A(a)就会出现问题,a就不会被第一个函数正确调用,而会调用第二个函数。在这种情况下应该改成A("\n")就可以被正确调用。
浙公网安备 33010602011771号