指针存储在分配字符串上的地址是什么?

时间:2015-10-11 04:52:28

标签: c pointers

char *p="Good Morning";

指针p存储什么地址? “早安”的每个字符都有不同的地址,因此p应该最初存储“G”地址。指针如何将自身增加到下一个位置?

2 个答案:

答案 0 :(得分:2)

p开始指向'G'

在C中,用于表示字符串的char*指针指向第一个字符。这样一个字符串的结尾是一个隐含的'\0'字符。

指针不会自行递增,但将其用作字符串的函数(例如puts(p))将在内部完成。

答案 1 :(得分:0)

  

指针p存储什么地址? “早安”的每个角色   具有不同的地址,因此p应该最初存储“G”地址。   指针如何将自身增加到下一个位置?

指针存储字符串第一个字符的地址。 (例如*pp[0]相同,并且是存储在该地址的值 - G

指针增量由指针type定义。指向字符串的指针,或更恰当的char *指针的类型大小为1sizeof (char)),因此递增指针(例如p++;p += 1;)将指针增加1 - byte到下一个字符。

类似地,整数指针int *foo的增量为4 - bytes(到下一个整数),基于sizeof (int);4(通常)。