日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一维数组名与二维数组名的关联

發布時間:2024/4/13 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一维数组名与二维数组名的关联 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.一維數組名與二維數組名的關系之于普通指針與數組指針的關系
2.首先數組名編譯器會隱式變換看做指針常量,因此a[i]與a+i是等價的。
a+i返回由i指定的行地址,假設元素類型為char,則行指針類型為char ()[n],其中n為列寬,即每行元素數量。當行指針指向一個地址時,此時該行首元素地址與行地址是一致的,但是類型不同,這個是理解二維數組指針的關鍵。
星號在指針前含義為取指針指向內存中的值,但是由于行指針指向的是一行元素整體而不是單個元素,因此(a+i)返回i指定行的所有元素,但是一行元素是不可能以值的形式直接獲得,所以編譯器返回的是一維數組指針char ,所以再此情形下你可以理解為星號是將行指針轉換為普通一維數組指針,即 char ()[n]轉換為 char *。
&a[i]返回i指定行的第一元素地址,與&a[i][0]等價。
對于&a[i]是此行第一元素的值,是因為&a[i]等于i行0列元素的地址的地址,則等于i行0列元素的地止。(并且&&a[i]也不存在)
由下面一段代碼可見:
#include<stdio.h>
int main()
{
int a[2][5];
printf("%p\n",&a[1]);
printf("%p\n",&a[1][0]);
printf("%p\n",a[1]);
return 0;
}

總結

以上是生活随笔為你收集整理的一维数组名与二维数组名的关联的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。