c语言指针学习笔记
指针变量就是存放内存地址的变量。c语言中使用 int *pa; 的方式来定义指针。
`
main()
int a = 10, b=20, s, t, *pa, *pb,*pc,*pd;
pa = &a;
pb=pa;
s=*pb;
pc=&b;
*pc = *pb;
t=a;
int ss[10] = {0,1,2,3,4,5,6,7,8,9};
int *ps;
ps=ss;
for(int i=0;i<10;i++){
ps=ps+1;
}
`
- 定义指针变量时,* 只是指明这个变量是指针变量;
- 使用指针变量时,* 代表【取内容】。
- &代表【取地址】。
————————————————————————————————————————————————————————
具体语句解析:
int a=10,b=20, *pa, *pb;
定义了int型变量a、b 和指针变量pa、pb,pa和pb的类型是(int*)。
pa=&a;
在使用中 pa 类型就是(int), &a类型也是(int)。 pa这个指针变量中存放的是a的地址:0x62fde8.
pb=pa;
指针pb中存放的内容也改成了地址0x62fde8。
s=*pb;
使用中 * 代表【取内容】,*pb 是int型,就是取出pb所存地址中的值,即地址 0x62fde8 中的a值10。
pc=&b; *pc = *pb;
pc=&b;给指针pc一个地址值,pb就是取出地址0x62fde8中的值10,pc就是取出地址0x62fde4中的值20. *pc = *pb; 直接把地址中的值交换,各自保存的地址值不变(这种交换只能在两个指针都有具体数值后才能进行)。
ps=ps+1;
在数组的循环中,ps=ps+1; 代表指针向后移动一个元素。