【⛔C语言“数组名”,不得不说的秘密!⛔】c语言“数组名字“初探
生活随笔
收集整理的這篇文章主要介紹了
【⛔C语言“数组名”,不得不说的秘密!⛔】c语言“数组名字“初探
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?代碼:
#include<stdio.h> int main() {int a[10] = {0};printf("a: %p a + 1: %p\n",a,a + 1);printf("&a: %p &a + 1: %p\n",&a,&a + 1);printf("&a[0]:%p &a[0] + 1: %p\n",&a[0],&a[0] + 1);return 0; }結果:
a: 0x7ffc2190a8b0 a + 1: 0x7ffc2190a8b4 &a: 0x7ffc2190a8b0 &a + 1: 0x7ffc2190a8d8 &a[0]:0x7ffc2190a8b0 &a[0] + 1: 0x7ffc2190a8b4結論:
數組名a表示的是“數組首個元素的地址,而首個元素是int類型”,&a指的是int?a[10]這個數組的地址,而這個數組的長度是40個字節,所以&a + 1比a大了40。
可以發現a?與 &a[0]是等價的:在很多用到數組名字的地方,編譯器都會自動地將其替換為一個指向數組首元素的指針。
擴展:
1.本文以int數組為例,字符串數組等其他類型數組同樣適用此特性;
2.數組名稱作為形參傳進去函數時,退化成指針使用。
總結
以上是生活随笔為你收集整理的【⛔C语言“数组名”,不得不说的秘密!⛔】c语言“数组名字“初探的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你会和丑且家境不好,但对你好的男孩结婚吗
- 下一篇: 了解招聘中的这些潜台词,找工作少走弯路