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")就可以被正确调用。

posted on 2011-04-14 16:15  linw  阅读(1302)  评论(0)    收藏  举报

导航