#include <stdio.h>
int main() {
//整数部分
int a = 1, b = 10, c = 100;
int *pa, *pb, *pc;
int **ppa, **ppb, **ppc;
pa = &a;
pb = &b;
pc = &c;
ppa = &pa;
ppb = &pb;
ppc = &pc;
printf("%p\t%p\t%d\t%p\t%p\n",&a,pa,*pa,ppa,*ppa);
printf("%p\t%p\t%d\t%p\t%p\n", pb,pb,*pb,ppb,*ppb);
printf("%p\t%p\t%d\t%p\t%p\n", pc,pc,*pc,ppc,*ppc);
printf("\n");
//数组部分
int m[10] = { 1,2 }, n[10] = {10,20};
int *pm,*pm2;
pm = m;
pm2 = &m;
//m代表的是该数组最开始的一个元素的地址,等于&m[0]
//&m代表的是数组开始的地址,当加一时,偏移量为整个数组的偏移量
printf("%p\t%p\t%p\t%p\t%p\t%p\n", m , &m , m[0], &m[0], pm,pm2);
printf("%p\t%p\t%p\t%p\t%p\t%p\n",m+1,&m+1,m[0]+1,&m[0]+1,pm+1,pm2+1);
return 0;
}
指针
最新推荐文章于 2024-10-05 14:04:35 发布