“字符串实际上是指向字符序列中第一个字符的指针”
这句话主干是“字符串是指针”
比如一个字符串的定义:char *str="abcd";这里str显然是一个字符型的指针了
这半部分理解了吧?
再看上面那句话,“字符串实际上是指向字符序列中第一个字符的指针”
还是上面那个例子:str指向字符串的内容是一个这样的序列“abcd”
字符串是一序列的字符,加上一个‘\0’的结束符;而让str指向一个字符串,其实是让str这个字符型指针指向字符序列中的第一个字符;
这也就是说第一个字符的指针的意思了!
关于字符串和指针的内容,推荐看一看《C和指针》这本书
比如char *p[3]={"abc","def","ghi"};
这里p是个长度为3的指针数组,p[0]指向字符串"abc"的首字符'a',p[1]指向字符串"def"的首字符'd',
p[2]指向字符串"ghi"的首字符'g'
char *str = "abcdefg";
假设字符串"abcdefg"在内存中存放的地址为 0x3a000000~0x3a000007,那么你str的值就是0x3a000000,即str指向了字符'a'
意思就是,字符串的第一个字符的地址保存在字符串变量中。因为字符串变量其实是指针变量。