标签:
1 &a[i] // 取地址符
1 a+i // 数组名就是数组首地址
1 int *p = a; 2 p+i; // 指针法
1 int *array[10];
1 int a = 3, b = 4, c = 5; 2 int *pa[3] = {&a, &b, &c};
1 int arr[2][2] = {1,2,3,4}; 2 int *pa[2] = {arr[0], arr[1]}; 3 4 printf("arr[0][0] = %p\n", &arr[0][0]); 5 //arr[0][0]的地址,arr的首地址 6 printf("arr[0][0] = %d\n", arr[0][0]); 7 //arr[0][0]的值 8 printf("pa[0] = %p\n", pa[0]); 9 //pa[0]的值,即指针pa[0]所指向的地址,所存放的地址 10 printf("*pa[0] = %d\n", *pa[0]); 11 //pa[0]所指向的地址的内容 12 printf("**pa = %d\n", **pa); 13 //指针数组pa的首地址(即pa[0]的地址)对应的值--即pa[0]存放的内容--即arr[0]的地址所对应的值 14 printf("**(pa+1) = %d\n", **(pa+1)); 15 //指针数组pa的首地址+1(非数量1,地址意义上的1)(即pa[1]的地址)对应的值--即pa[1]存放的内容--即arr[1]的地址所对应的值
1 int a = 3, b = 4, c = 5, d = 6; 2 int *pa[4] = {&a, &b, &c, &d}; 3 4 printf("a = %d\n", a); 5 //a的内容 6 printf("&a = %p\n", &a); 7 //a的地址 8 printf("pa = %p\n", pa); 9 //数组的首地址, &pa[0] 10 printf("pa[0] = %p\n", pa[0]); 11 //数组的第1个元素, a的地址 12 printf("*pa[0] = %d\n", *pa[0]); 13 //数组的第1一个元素所指向的内存地址所对应的内容 14 printf("*(&a) = %d\n", *(&a)); 15 //a的内容 16 printf("**pa = %d\n", **pa); 17 //a的内容
1 int a[5] = {1,2,3,4,5} 2 int *p = a; 3 int *p1 = &a[3]
标签:
原文地址:http://www.cnblogs.com/SquirrelStock/p/5347891.html