关于指针的问题
本帖最后由 风之残月 于 2014-11-9 22:40 编辑#include <stdio.h>
#include <stdlib.h>
char c1,c2,c3;
char *cp;
void setup()
{
c1 = 'a';
c2 = 'b';
c3 = 'c';
cp = &c1;
}
int main()
{
setup();l
printf("%d\n",++cp);
setup();
printf("%d\n",cp); 为什么地址总是偏移1,而不是偏移4
system("pause");
return 0;
}
因为cp指向的是字符,而字符占用内存一个字节。编译器在编译时,会把++cp在内存中偏移一个字节。如果你是整形的话,++cp就会偏移4个字节。 赞同! 楼上正解 来看看了
页:
[1]