最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

c語言數(shù)組基本概念復(fù)習

2023-06-20 20:08 作者:齊樂天世界第一帥  | 我要投稿


今天簡單復(fù)習一下數(shù)組
? ? ? ?1) 什么是數(shù)組:數(shù)組由數(shù)據(jù)類型相同的一系列元素組成。
? ? ? ?2)使用時:需要通過聲明數(shù)組告訴編譯器數(shù)組內(nèi)包含多少元素和這些元素類型。編譯器通過這些信息正確地創(chuàng)建數(shù)組。普通變量可以使用的類型,數(shù)組元素都可以用。
? ? ? ?3)數(shù)組元素:[]表示數(shù)組,例如candy[3],表示candy是一個數(shù)組,[3]中的3表示這個數(shù)組共有3個元素,數(shù)組元素的編號從0開始,例:candy[364],表示365個元素,也是最后一個元素。
? ? ? ?4)數(shù)組的定義:類型說明符 數(shù)組名[常量表達式];,例如:int a[5]; 。
? ? ? ?5)數(shù)組的初始化:①完全初始化 例:int a[5] = {1, 2, 3, 4, 5};
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②不完全初始化 例:int a[5] = {1, 2}; ,后面的元素系統(tǒng)自動默認為0; ? ? int a[] = {1, 2, 3, 4, 5}; ,這種情況系統(tǒng)會根據(jù){}里的元素個數(shù),自動補全[]里的元素個數(shù)。


簡單例子:

#include <stdio.h>

int main(void)

{

? ? int a[3] = {1, 2, 3};? //定義長度為3的數(shù)組a

? ? int t;

? ? t = a[2];? //引用數(shù)組a中下標為2的元素a[2]=3

? ? printf("t = %d\n", t);

? ? return 0;

}

輸出結(jié)果是:
t = 3

“int a[5];”是定義了有 5 個元素的數(shù)組,這 5 個元素分別為 a[0]、a[1]、a[2]、a[3]、a[4]。而 t=a[3] 中的 a[3] 不是數(shù)組,只是其中的元素 a[3]。
此外,當給元素單獨賦值時不能加大括號,因為元素就是變量,即 a[5] 只是一個變量名。前面是怎么給變量賦值的現(xiàn)在就怎么給數(shù)組元素賦值,比如“a[5]=1;”。但是對于上面這個程序,這么寫還是錯誤的。因為數(shù)組元素的下標是從 0 開始的,數(shù)組 a 的元素只有 a[0]~a[4],并沒有 a[5] 這個元素。




1)指針的基本概念:

指針提供一種以符號形式使用地址的方法。因為計算機的硬件指令非常依賴地址,指針在某種層面把程序員想要表達的指令以更接近機器的方式表達。因此使用指針的程序更有效率。尤其是,指針能有效的處理數(shù)組。數(shù)組的表示法其實是在變相的使用指針。?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
2)指針概念的理解:

計算機科學(xué)中,指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值。由于通過地址能找到所需的變量單元,可以說,地址指向該變量單元。因此,將地址形象化的稱為“指針”。意思是通過它能找到以它為地址的內(nèi)存單元。

假設(shè)內(nèi)存塊為一棟大樓,每個內(nèi)存單元為一間房子,每個指針就好比每間房子的門牌號,我們通過門牌號找到相應(yīng)的房子,同理,我們可以通過指針找到相應(yīng)的內(nèi)存單元。

簡單例子:

#include <stdio.h>

int main()

{

int a = 10;

printf("%d\n",a);? ? //在內(nèi)存中開辟一塊空間

int *p = &a;? ? ? ? ???//這里我們對變量a,取出它的地址,可以使用&操作符。

? ? ? ? ? ? ? ? ? ? ? ? ? ? //**將a的地址存放在p變量中,p就是一個之指針變量**。

?*p=2;? ? ? ? ? ? ? ?? ?//*+指針表示解引用,相當于通過指針找到a這塊內(nèi)存單元

?printf("%d\n",a);

return 0;

}

輸出結(jié)果:10,2??

總結(jié):指針是一個變量,是用于存儲地址的變量


3)指針的8種基本操作:①賦值:可以把地址賦給指針。

????????????????????????????????????????②解引用:*運算符給出指針指向地址上存儲的值。

????????????????????????????????????????③取址:和所有變量一樣,指針變量也有自己的地址和值。

????????????????????????????????????????④指針與整數(shù)相加:可以使用+運算符,把指針與整數(shù)相加,或者????????????????????????????????????????????整數(shù)與指針相加。

????????????????????????????????????????⑤遞增指針:遞增指向元素的指針可以讓指針移動至數(shù)組的下一? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?個元素。

?????????????????????????????????????????⑥指針減去一個整數(shù):可以用 -?運算符從指針中減去一個整數(shù)。指? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 針必須是第一個運算對象,整數(shù)是第二個運算對象。

?????????????????????????????????????????⑦遞減指針:和遞增指針同理移動方向相反。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?⑧指針求差:可以計算兩個指針的差值。


關(guān)鍵概念:

數(shù)組用于存儲相同類型的數(shù)據(jù)。C把數(shù)組看作是?派生類型,因為數(shù)組是建立在其他類型的基礎(chǔ)上。也就是說,無法簡單地聲明一個數(shù)組。在聲明數(shù)組是必須說明其元素類型,如 int?類型的數(shù)組,float類型的數(shù)組,或其他類型的數(shù)組。所謂的其他類型也可以是數(shù)組類型,這種情況下,創(chuàng)建的是數(shù)組的數(shù)組(或簡稱二維數(shù)組)。

通常編寫一個函數(shù)來處理數(shù)組,這樣在特定的函數(shù)中解決特定的問題,有助于實現(xiàn)程序的模塊化。在把數(shù)組名作為實際參數(shù)時,傳遞給函數(shù)的不是整個數(shù)組,而是數(shù)組的地址(因此,函數(shù)對應(yīng)的形式參數(shù)是指針)。為了處理數(shù)組,函數(shù)必須知道從何處開始讀取數(shù)據(jù)和要處理多少個數(shù)組元素。數(shù)組地址提供了“地址”,“元素個數(shù)”,可以內(nèi)置在函數(shù)中或作為單獨的參數(shù)傳遞。第 2?種方法更普遍,因為這樣做可以讓同一個函數(shù)處理不同大小的數(shù)組。

數(shù)組和指針關(guān)系密切,同一個操作可以用數(shù)組表示法或指針表示法。它們之間的關(guān)系允許你在處理數(shù)組的函數(shù)中使用數(shù)組表示法,即使函數(shù)的形式參數(shù)是一個指針,而不是數(shù)組。

對于傳統(tǒng)的C數(shù)組,必須用常量表達式指明數(shù)組的大小,所以數(shù)組的大小在編譯時就已經(jīng)確定。C99/C11新增了變長數(shù)組,可以用變量表示數(shù)組大小。這意味著長數(shù)組的大小延遲到程序運行時才確定。


c語言數(shù)組基本概念復(fù)習的評論 (共 條)

分享到微博請遵守國家法律
射洪县| 汽车| 奉节县| 杂多县| 尼玛县| 长垣县| 弥勒县| 浠水县| 柳河县| 色达县| 建瓯市| 贵阳市| 泰安市| 上高县| 铜梁县| 临潭县| 达州市| 武城县| 阜平县| 郧西县| 常宁市| 桐柏县| 商丘市| 海林市| 托克托县| 怀集县| 青阳县| 庆元县| 澄江县| 申扎县| 定陶县| 迁西县| 稷山县| 永兴县| 镇沅| 临城县| 大竹县| 安多县| 全椒县| 昌黎县| 东台市|