亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言數(shù)組全面總結(jié)梳理

 更新時間:2022年02月11日 16:44:57   作者:i跑跑  
在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活

數(shù)組(array)是由一系列類型相同的元素構(gòu)成。

一般形式:

類型     數(shù)組名  [常量表達式]

一,一維數(shù)組

1.創(chuàng)建和初始化

創(chuàng)建一堆相同元素的集合,以整型為例:

//創(chuàng)建大小為8的整型數(shù)組
int arr1[8];
// []里面應(yīng)放常量,因此若:
int num=8;
//則有:
arr2[num];      num為變量,創(chuàng)建失敗
// 此時 arr1 != arr2  
 

初始化就是合理賦值,有多種方式,合理即可:

//指定大小的初始化
int arr1[3]={1,2,3};
//不指定大小的初始化
int arr2[]={1,2,3};
//指定大小的不完全初始化
int arr3[3]={1,2};

這里創(chuàng)建字符數(shù)組時應(yīng)注意這種情況:

	char arr1[] = {"abcdef"};
	char arr2[] = {'a','b','c','d','e','f'};

這兩種初始化看著內(nèi)容相同,但 arr1 不等同于 arr2,這里我們用 strlen函數(shù) 分別求他們的字符串長度:

arr1是我們能想到的,但是arr2卻超出預(yù)料,原因是strlen遇到字符'\0' ('\0'為結(jié)束標志)結(jié)束讀取,且打印出的個數(shù)里不算字符'\0'.

arr1字符串末尾f后面默認有結(jié)束標志,而arr2字符f后面無結(jié)束標志,為隨機值,strlen必須讀取到'\0'才會結(jié)束讀取,因此讀取到的為隨機數(shù)。

	//改寫arr2為:
char arr2[] = {'a','b','c','d','e','f','\0'};

那么結(jié)果:

2.使用下標訪問

數(shù)組是用 [] 來進行下標訪問的,數(shù)組下標從0開始。

   如:       arr1[3]={1,2,3};

則數(shù)據(jù)的下標為:  0 1 2        一一對應(yīng)

寫個栗子,分別打印 int arr2[5]={1,2,3,4,5}; 的每個元素

注:int sz = sizeof(arr2) / sizeof(arr2[0]);   //通過字節(jié)計算元素個數(shù),確定判斷條件 因為已經(jīng)知道了元素個數(shù)里可省略 直接令 i<5.

#include <stdio.h>
int main()
{
	int i = 0;
	int arr2[5] = { 1, 2, 3, 4, 5 };         //創(chuàng)建數(shù)組arr2并初始化
	int sz = sizeof(arr2) / sizeof(arr2[0]);   //通過字節(jié)計算元素個數(shù),確定判斷條件
	for (i = 0; i < sz; i++)
	{
		printf("%d ",arr2[i]);            下標從0開始,依次訪問每個元素
	}
	return;
}

3.在內(nèi)存中的存儲

由上面的栗子我們直接打印數(shù)組每個元素的內(nèi)存:

觀察不難發(fā)現(xiàn)每個元素間相差四個字節(jié),且地址由低到高。

得到結(jié)論:數(shù)組在內(nèi)存中是連續(xù)存放的。

二,二維數(shù)組 

1.創(chuàng)建和初始化

一般形式:

類型     數(shù)組名  [常量表達式][常量表達式]

//數(shù)組創(chuàng)建
int arr[3][4];   //三行四列
char arr[3][6];   //三行六列

一維是單行,這里可將二維理解為行列

初始化也與一維數(shù)組沒多少差別:

//指定大小的初始化
int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};  
//不指定大小的初始化,(行可不指定,但列不可省略,必須指定)
int arr2[][6]={1,2,3};
 
int arr3[][4]={{1,2},{3,4},5,6,7,8,9};   //賦值中{}里面的{}可代表一行的內(nèi)容
 
//指定大小的不完全初始化
int arr4[3][2]={1,2,3};

不完全初始化的值為0

2.使用下標訪問

二維數(shù)組的訪問就很有意思   將二維數(shù)組看成行列 用坐標來訪問

以  int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};   三行四列  為例:

注:列和行的下標都是從0開始

比如我們想打印6,那么應(yīng)該是arr1[1][1],而不是arr1[2][2].

3.在內(nèi)存中的存儲

繼續(xù)以arr1為例:

地址依舊是連續(xù)的,由低地址到高地址。

三,越界問題

例如:

創(chuàng)建一個數(shù)組  int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};  訪問時行不能<0 或 >=3,列不能<0 或 >=4,否則就是數(shù)組越界。

編譯代碼時,越界不一定會報錯,注意自己檢查。

到此這篇關(guān)于C語言數(shù)組全面總結(jié)梳理的文章就介紹到這了,更多相關(guān)C語言 數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問題

    C語言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問題

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問題的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • 深入了解C語言中的字符串和內(nèi)存函數(shù)

    深入了解C語言中的字符串和內(nèi)存函數(shù)

    本文主要帶大家來學(xué)習一些常用的庫函數(shù)。有了這些庫函數(shù),我們可以更加方便地操作字符串和內(nèi)存,從而提升我們的編碼效率。話不多說,我們開始吧
    2022-11-11
  • C++ 實現(xiàn)線程安全的頻率限制器(推薦)

    C++ 實現(xiàn)線程安全的頻率限制器(推薦)

    這篇文章主要介紹了在 C++ 中實現(xiàn)一個線程安全的頻率限制器,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 實例詳解C++中指針與引用的區(qū)別

    實例詳解C++中指針與引用的區(qū)別

    引用是C++引入的重要機制(C語言沒有引用),它使原來在C中必須用指針來實現(xiàn)的功能有了另一種實現(xiàn)的選擇,在書寫形式上更為簡潔,那么引用的本質(zhì)是什么,它與指針又有什么關(guān)系呢?這篇文章主要給大家介紹了關(guān)于C++中指針與引用的區(qū)別,需要的朋友可以參考下
    2021-07-07
  • 從C語言過渡到C++之const

    從C語言過渡到C++之const

    C++中最早引入const是為了替代#define,后來又衍生出了其它用法。這一篇中我們來詳細介紹const的各種常見用法。希望對大家學(xué)習C++有所幫助。
    2017-07-07
  • C++函數(shù)返回值為對象時,構(gòu)造析構(gòu)函數(shù)的執(zhí)行細節(jié)

    C++函數(shù)返回值為對象時,構(gòu)造析構(gòu)函數(shù)的執(zhí)行細節(jié)

    C++函數(shù)返回值為對象時,構(gòu)造析構(gòu)函數(shù)的執(zhí)行細節(jié),需要的朋友,可以參考下
    2013-02-02
  • C/C++中typedef的用法大全

    C/C++中typedef的用法大全

    typedef用法一共七種,分別是:為基本數(shù)據(jù)類型起別名、為結(jié)構(gòu)體起別名、為指針類型起別名、為數(shù)組類型起別名、為枚舉類型起別名、為模版函數(shù)起別名。本文就來分別講講這7個用法的具體實現(xiàn)吧
    2023-04-04
  • c語言單詞搜索的實現(xiàn)

    c語言單詞搜索的實現(xiàn)

    本文主要介紹了c語言單詞搜索的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-04-04
  • C/C++產(chǎn)生指定范圍和不定范圍隨機數(shù)的實例代碼

    C/C++產(chǎn)生指定范圍和不定范圍隨機數(shù)的實例代碼

    C/C++產(chǎn)生隨機數(shù)用到兩個函數(shù)rand() 和 srand(),這里介紹不指定范圍產(chǎn)生隨機數(shù)和指定范圍產(chǎn)生隨機數(shù)的方法代碼大家參考使用
    2013-11-11
  • C語言實現(xiàn)飛機游戲(豪華版)的示例代碼

    C語言實現(xiàn)飛機游戲(豪華版)的示例代碼

    在前文中已經(jīng)實現(xiàn)了基礎(chǔ)版和進階版的飛機游戲,但是存在的問題很明顯:已經(jīng)發(fā)射出去的子彈會隨著飛機位置的實時改變而改變,并且不能實現(xiàn)連發(fā)。本篇文章將利用數(shù)組進一步改進空戰(zhàn)游戲,感興趣的可以了解一下
    2022-10-10

最新評論