指针小问题
#include <stdio.h>void main()
{
int *p;
int a={1,2,3,4,5};
p=&a;
printf("%d\n",p);
printf("%d\n",p+1);
printf("%d\n",p);
printf("%d\n",p++);
printf("%d\n",p);
}
请问大神 我这里p+1的话 p的指向地址是不变的但是为啥p++他指向的地址改变了呢 是因为p++的话 p=p+1了嘛 是的
请补习自增自减运算符 qiuyouzhi 发表于 2021-4-18 15:39
是的
请补习自增自减运算符
好的 靓仔{:10_253:} qiuyouzhi 发表于 2021-4-18 15:39
是的
请补习自增自减运算符
#include <stdio.h>
void main()
{
int *p,*o;
int a={1,2,3,4,5};
p=&a;
o=a;
printf("%d\n",p);
printf("%d\n",o);
printf("%d\n",p-o);
}
再弱弱的问一下 P-O为啥是2捏而不是他们地址差 本帖最后由 qiuyouzhi 于 2021-4-18 15:53 编辑
g1063496360 发表于 2021-4-18 15:46
再弱弱的问一下 P-O为啥是2捏而不是他们地址差
它们的地址差就是这个
p是第2个元素的地址,
o是第0个元素的地址,
p - o == 2 - 0 == 2 qiuyouzhi 发表于 2021-4-18 15:51
它们的地址差就是这个
p是第2个元素的地址,
o是第0个元素的地址,
可是我是把他们的地址相减啊相差8个字节 为啥不是8呢 g1063496360 发表于 2021-4-18 15:54
可是我是把他们的地址相减啊相差8个字节 为啥不是8呢
和字节无关
地址是个十六进制的数
你说的是大小 qiuyouzhi 发表于 2021-4-18 15:57
和字节无关
地址是个十六进制的数
你说的是大小
感谢顶级大聪明{:10_288:}
页:
[1]