字符串是指针吗?

如题所述

字符串是一串字符,由字符'0'或者说数字0结尾。
字符串不是指针追问

char *p[3]是一个指针数组,
我们常定义char *p[3]={"red","black","yellow"};
不就暗指字符串是指针吗?

追答

char *p[3];是指针数组没错,p[0]、p[1]、p[2]这3个指针分别指向3个字符串,或者说指向3个字符串的首字符,这些指针你说它们指向的是字符也可以,看你怎么用,虽然指针指向了字符串,但不能反着说字符串就是指针啊,字符串就是一串以0结尾的字符组,如果当成字符串来用,比如printf("%s\n",p[0]);需要提供字符串起始指针,如果当成字符来用也可以,比如:while ( p[0]++ ) printf("%c",*p[0]); printf("\n");
所以说你的例子中的赋值是将3个字符串的首地址赋值给了指针数组p而已。

追问

厉害,以后有C语言问题就请教你了!

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
相似回答