您好,登錄后才能下訂單哦!
這篇“C語言數組的概念是什么及怎么應用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C語言數組的概念是什么及怎么應用”文章吧。
數組是相同類型的變量的有序集合
數組在一片連續的內存空間中存儲元素
數組元素的個數可以顯示或隱式指定
下面看一段數組初始化的代碼:
#include <stdio.h> int main() { int a[5] = {1, 2}; int b[] = {1, 2}; printf("a[2] = %d\n", a[2]); printf("a[3] = %d\n", a[3]); printf("a[4] = %d\n", a[4]); printf("sizeof(a) = %d\n", sizeof(a)); printf("sizeof(b) = %d\n", sizeof(b)); printf("count for a: %d\n", sizeof(a)/sizeof(int)); printf("count for b: %d\n", sizeof(b)/sizeof(int)); return 0; }
下面為輸出結果:
注意數組長度的計算,sizeof(數組名) / sizeof(數組元素類型)
數組名代表數組首元素的地址
數組的地址需要用取地址符 & 才能得到
數組首元素的地址值與數組的地址值相同
數組首元素的地址與數組的地址是兩個不同的概念
下面看一段數組名和數組地址的代碼:
#include <stdio.h> int main() { int a[5] = { 0 }; printf("a = %p\n", a); printf("&a = %p\n", &a); printf("&a[0] = %p\n", &a[0]); return 0; }
下面為輸出結果:
注意:數組首元素的地址與數組的地址是兩個不同的概念,雖然它們的地址值是一樣的,但是意義確是完全不同的,不同之處在于它們所占用的內存空間長度是不一樣的。
數組名可以看做一個指針常量
數組名“指向”的是內存中數組首元素的起始位置
數組名不包含數組的長度信息
在表達式中數組名只能作為右值使用
只有在下列場合中數組名不能看做指針常量
數組名作為 sizeof 操作符的參數
數組名作為 & 運算符的參數
下面通過一段代碼,說明數組和指針并不相同:
#include <stdio.h> int main() { int a[5] = {0}; int b[2]; int* p = NULL; p = a; printf("a = %p\n", a); printf("p = %p\n", p); printf("&p = %p\n", &p); printf("sizeof(a) = %d\n", sizeof(a)); printf("sizeof(p) = %d\n", sizeof(p)); printf("\n"); p = b; printf("b = %p\n", b); printf("p = %p\n", p); printf("&p = %p\n", &p); printf("sizeof(b) = %d\n", sizeof(b)); printf("sizeof(p) = %d\n", sizeof(p)); //b = a; return 0; }
輸出結果如下:
sizeof(a) = 20,sizeof(p) = 4,這就說明了指針和數組是兩個不相同的東西。
以上就是關于“C語言數組的概念是什么及怎么應用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。