C语言中,字符串实际上是指向字符序列中第一个字符的指针,因此字符传数组中的每一个元素实际上就是指向字

2024-11-09 02:52:44
推荐回答(4个)
回答1:

“字符串实际上是指向字符序列中第一个字符的指针”

这句话主干是“字符串是指针”

比如一个字符串的定义:char *str="abcd";这里str显然是一个字符型的指针了

这半部分理解了吧?

再看上面那句话,“字符串实际上是指向字符序列中第一个字符的指针”

还是上面那个例子:str指向字符串的内容是一个这样的序列“abcd”

字符串是一序列的字符,加上一个‘\0’的结束符;而让str指向一个字符串,其实是让str这个字符型指针指向字符序列中的第一个字符;

这也就是说第一个字符的指针的意思了!

关于字符串和指针的内容,推荐看一看《C和指针》这本书

回答2:

比如char *p[3]={"abc","def","ghi"};
这里p是个长度为3的指针数组,p[0]指向字符串"abc"的首字符'a',p[1]指向字符串"def"的首字符'd',
p[2]指向字符串"ghi"的首字符'g'

回答3:

char *str = "abcdefg";
假设字符串"abcdefg"在内存中存放的地址为 0x3a000000~0x3a000007,那么你str的值就是0x3a000000,即str指向了字符'a'

回答4:

意思就是,字符串的第一个字符的地址保存在字符串变量中。因为字符串变量其实是指针变量。