91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言指針數組和數組指針的區別有哪些

發布時間:2023-01-06 17:35:00 來源:億速云 閱讀:300 作者:iii 欄目:編程語言

這篇“C語言指針數組和數組指針的區別有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C語言指針數組和數組指針的區別有哪些”文章吧。

區別:對指針數組來說,首先它是一個數組,數組的元素都是指針,也就是說該數組存儲的是指針,數組占多少個字節由數組本身決定;而對數組指針來說,首先它是一個指針,它指向一個數組,也就是說它是指向數組的指針,在 32 位系統下永遠占 4 字節,至于它指向的數組占多少字節,這個不能夠確定,要看具體情況。

一、數組指針和指針數組的定義

1.指針數組:定義 int *p[n];

指針數組可以說成是”指針的數組”,由于*p沒有括號,首先這個變量是一個數組,其次,”指針p”修飾這個數組,意思是說這個數組的所有元素都是指針類型,而指針所占的字節數和其類型無關,只與系統有關,在32位系統下,任何類型的指針占據4個字節,在64位系統下,任何類型的指針占據8個字節。

2.數組指針:定義 int (*p)[n];

由于()的優先級高,首先說明p是一個int類型指針,它是指向一個整型(int)的一維數組,這個一維數組的長度是n,也可以說是總共有n個格子。數組指針也稱指向一維數組的指針,亦稱行指針。

數組指針也可以稱為“數組的指針”,首先這個變量是一個指針,其次,”數組”修飾這個指針,意思是說這個指針存放著一個數組的首地址,或者說這個指針指向一個數組的首地址。

C語言指針數組和數組指針的區別有哪些

二、數組指針和指針數組的使用

1.數組指針

首先定義一個數組指針,既然是數組的指針,說明是用指針p去指向一個一維數組,即:

int (*p)[[4]];
 //這里定義int類型,p是一個指針,指向一維數組的首地址,這個一維數組大小為4

也就是說,int類型的指針p指向int [[4]]的數組,而數組的每一個元素是一個int類型的變量。

數組指針本質是一個指針,而指針的作用就是用來指向變量的地址,所以數組指針一般可以這樣使用(示例):

void fun(int (*P)[4]); //子函數中的形參,數組指針 

a[3][4] = {0}; //主函數中定義的二維數組
fun(a); //主函數調用子函數的實參,是二維數組的首元素首地址

2.指針數組

對于指針數組,也就是“指針的數組”,說明這個數組的所有元素都是指針類型。不妨定義指針p,例如:

int *p[[4]];
 //這里數組長度為4,所有元素均為int類型的指針

代碼如下(示例):

void Fun(char** str);    //子函數中的形參,指針數組

int main()
{
	int arr[3][4];
	char* str = "abc";
	char** q = &str;
}

指針數組和數組指針參數傳遞問題

傳遞的參數匹配需要的形參
int *p[4]int **p(指針數組或者二級指針)
int (*p)[4]int (*p)[4](不變)
int [3][4]int (*p)[4](數組指針)
int **pint **p(不變)

三、實際使用的例子

例子:使用指針數組打印出:“sun wu kong”

C語言指針數組和數組指針的區別有哪些

// 代碼塊  打印“sun wu kong”
char str1[] = { 's', 'u', 'n' , '\0' };
char str2[] = { 'w', 'u' ,'\0' };
char str3[] = { 'k', 'o', 'n', 'g' ,'\0' };
char* p[3] = { str1, str2, str3 };

以上就是關于“C語言指針數組和數組指針的區別有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁化县| 巫山县| 房产| 康平县| 昭通市| 吴旗县| 三原县| 合水县| 昭觉县| 巨野县| 宣化县| 江北区| 赤水市| 黑龙江省| 杭州市| 北辰区| 民权县| 融水| 霞浦县| 唐河县| 永福县| 紫金县| 陆良县| 丹江口市| 墨玉县| 五原县| 江源县| 静安区| 伊春市| 五河县| 邯郸县| 安新县| 云林县| 大悟县| 奈曼旗| 彭山县| 高密市| 凉城县| 溆浦县| 五原县| 沂南县|