|
发表于 2019-6-23 13:56:52
|
显示全部楼层
- #include <stdio.h>
- int main()
- {
- int a[5] = {1, 2, 3, 4, 5};
- char b[] = "FishC";
- int i;
- int *p;
-
- // 数组名是数组第一个元素的地址,也就是数组的首地址
- p = a;
- printf("p的地址为%p\n", p);
- p = &a[0];
- printf("p的地址为%p\n", p);
-
- printf("===== 优雅的分割线 ======\n");
- for(i=0; i<5; i++){
- // 每个地址间隔为变量类型所占大小
- printf("a[%d] = %d -> %p\n", i, a[i], &a[i]);
- }
-
- printf("===== 优雅的分割线 ======\n");
-
- for(i=0; i<5; i++){
- // 每个地址间隔为变量类型所占大小
- printf("b[%d] = %c -> %p\n", i, b[i], &b[i]);
- }
-
- printf("===== 优雅的分割线 ======\n");
- // p+1 不是简单的地址加1 而是指向数组元素的下一个元素
- printf("*p = %d, *(p+1) = %d, *(p+2) = %d\n", *p, *(p+1), *(p+2));
-
- return 0;
- }
复制代码 |
|