字符串就是字符串,指针就是指针,不要把二者混淆。char *p,(*q)[10],a[10];这样声明的指针p是指向字符的,p=a是把字符串的第一个字符的地址赋给p,并非把字符串的首地址赋给p;q才是指向字符串a的首地址的指针,q=a才是把字符串a的首地址赋给q。由于a既是字符串的首地址,又是字符串第一个字符的地址,所以p和q的值是一样的,但意义不一样:p+1指向下一个字符,而q+1指向下一个字符串,就是说跳到&a[10]那个地址上了。“空字符指针”是啥意思?C++中没有空字符,如''是非法的,所以根本不可能有空字符指针;而空字符串是合法的,“”的意思是只在这个字符串常量中放一个'\0';所以空字符串有指针,比如char *p=""是合法的。
温馨提示:答案为网友推荐,仅供参考