C语言-数组a 和a 的区别
生活随笔
收集整理的這篇文章主要介紹了
C语言-数组a 和a 的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
面試經典題目
#include "stdio.h"int main() {int a[5] = { 1,2,3,4,5 };int *ptr = (int *)(&a + 1);printf("%d,%d", *(a + 1), *(ptr - 1));/*getchar是用VS編寫方便查看輸出*/getchar();return 0; }?
請思考一下上面的輸出結果,如果你非常自信了,可以不用往下看
?
題目剖析
這個題目主要考察&a?和?a
- a 在這里代表是的數組首元素的地址即 a[0]的首地址,其值為 0x005efda0。
- &a 代表的是數組的首地址,其值為 0x005efda0。
- a+1 的值是 0x005efda0+1*sizeof(int),等于 0x005efda4。
- &a+1 的值是(0x005efda0 +(sizeof(a)= 5*sizeof(int))= 0x005efdb4 {0xcccccccc, 0xcb626a90, 0x005efdd0, 0x0029200e, 0x00000001}
?
?
歡迎關注微信公眾號-嵌入式Linux
覺得不錯,請幫忙轉發,點贊,您的每一次支持,我都將銘記于心
總結
以上是生活随笔為你收集整理的C语言-数组a 和a 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WEB打印插件Lodop
- 下一篇: java 图片合并成pdf_Java多张