C 语言中的好基友 数组和指针之五
来源:互联网 发布:厦门市公安局网络刻章 编辑:程序博客网 时间:2024/05/18 09:07
同样来自coolshell.cn的例子,运行后晕菜
#include <stdio.h>int main(){ int a[5]; printf("%d\n", sizeof(&a)); printf("%d\n", sizeof(a)); printf("1..%p\n", a); printf("2..%p\n", a+1); printf("3..%p\n", &a); //注意这个了,居然和a是同样地址,这种情况也只有数组名才能出现 printf("4..%p\n", &a+1); //这个就更神奇了,居然是偏移了sizeof(a),编译器认为&a这个指针类型是指向整个数组,我没法自圆其说了,只能说c编译器牛x int *b; b = a; printf("5..%p\n", b); printf("5..%p\n", &b); printf("5..%p\n", &b+1); return 0;}
结果:
4201..0xbfc3faec2..0xbfc3faf03..<span style="color:#cc0000;">0xbfc3faec</span>4..<span style="color:#cc0000;">0xbfc3fb00</span>5..0xbfc3faec5..0xbfc3fae85..0xbfc3faec
结论:
对于数组名这个酷似指针的家伙,如果再次取地址编译器的行为可是不一样,我想如果没有弄懂编译器到底咋实现的,你没法真正搞清楚。
0 0
- C 语言中的好基友 数组和指针之五
- C 语言中的好基友 数组和指针之三
- C 语言中的好基友 数组和指针之二
- C 语言中的好基友 数组和指针之四
- C 语言之五 指针 数组 函数
- C语言中的指针之数组和字符串
- c语言中的数组和指针
- c语言中的数组和指针
- c语言中的指针和数组
- 再论C语言中的指针和数组
- 小议C语言中的数组和指针
- C语言中的指针和数组
- C语言中的指针数组和数组指针
- C语言中的指针数组和数组指针
- C语言中的指针数组和数组指针
- C 语言中的好基友 数组和指针之一
- C语言之指针、数组和函数
- C语言之指针、数组和函数
- MyEclipse配置Tomact运行环境
- vxworks的钩子函数和软中断定时函数
- 函数的递归调用
- 十大最容易让人误解的职业
- 关于输入框input如何实现只可以选择不可以键盘输入
- C 语言中的好基友 数组和指针之五
- PHP array系列函数
- rman convert 迁移win64位oracle 到linux oracle+asm 手稿
- Oracle递归排序 父子关系排序
- JAVA数据源连接方式汇总
- Openjudge187 炮兵阵地(dp)
- 英文字母个数
- leetcode Pascal's Triangle 帕斯卡尔三角形输出
- ViewPager + Fragment两边留白问题