指针指向的是地址,指针就是地址,类似于酒店的门牌号,指针指向的值就是酒店房间里存放的东西。修改的指针的值其实就是修改了酒店房间里存放的东西,改了指针的地址或者指向,就是修改了房间号也就是换了房间。
1 #include<stdio.h>
2 int main()
3 {
4 int a=10;
5 int*p=&a;
6 printf("%d %d",*p,*(&a)); //打印p的值,打印a的值 10 10
7 printf("%p %p",p,&a); //打印p的地址,打印a的地址,其实p和a指向的是同一块内存,所以地址相同。
8 *p=20; //修改了*p,其实就是修改了a
9 printf("%d",a);
10 printf("1234");
11 printf("%p\n", &(*p));
12 printf("%d\n", *(&a));
13 int b=15;
14 printf("%d\n",b);
15 p=&b; //p指向b,修改了*p其实就是修改了b。
16 *p=25;
17 printf("%d\n",b);
18 return 0;
21 }
#include<stdio.h>
2 int main()
3 {
4 int a=10;
5 int *p=&a;
6 printf("p=%p,p+1=%p,p+2=%p",p,p+1,p+2); //p是Int型,每次移动4个字节。
7 printf("%d\n",*p);
8 int *p1 = p+2;
9 printf("p1-p %d\n", p1-p);
11 char *q;
12 printf("q %p, q+1 %p, q+2 %p\n", q, q+1, q+2); //q是char型,每次只移动一个字节。
13
14 return 0;
15 }
6494

被折叠的 条评论
为什么被折叠?



