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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言小白——数组与字符串

發(fā)布時(shí)間:2025/3/11 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言小白——数组与字符串 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)組的概念:
數(shù)組是多個(gè)同種數(shù)據(jù)類型的數(shù)據(jù)的一個(gè)集合.數(shù)組的地址空間是連續(xù)的.

? ? |-------------------|
? ? | ?41 ?| ?2 ?| ?11 ?|
? ? |-------------------|
? ?0x00 ?0x04 ?0x08 ??
? ?地址本身是一個(gè)無符號(hào)整數(shù),數(shù)據(jù)長(zhǎng)度4字節(jié).
? ?
存儲(chǔ)結(jié)構(gòu)詳解 : 字長(zhǎng)為4字節(jié)的計(jì)算機(jī).
? ? ? ? ? ? ? ? <-----------------------32bit----------------------------------->?
? ? ? ? ? ? ? ? -----------------------------------------------------------------
? 0x00000008 ? ?| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |?
? ? ? ? ? ? ? ? -----------------------------------------------------------------
? 0x00000004 ? ?| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |?
? ? ? ? ? ? ? ? -----------------------------------------------------------------
? 0x00000000 ? ?| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |?
? ? ? ? ? ? ? ? -----------------------------------------------------------------
? ? ? ? ? ? ? ? ?1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8?
?? ??? ??? ??? ?|-----0x00------|-----0x01------|------0x02-----|------0x03-----|
?? ??? ??? ??? ?
數(shù)據(jù)對(duì)其 : 現(xiàn)代計(jì)算機(jī)中內(nèi)存空間都是按照字節(jié)byte劃分的,理論上講對(duì)任何數(shù)據(jù)類型的變量的訪問可以從任何內(nèi)
? ? ? ? ? ?存地址開始.但實(shí)際情況是,在訪問特定變量的時(shí)候經(jīng)常在特定的內(nèi)存地址訪問.這就需要各類型數(shù)據(jù)按
?? ??? ? ? 照一定的規(guī)則在地址空間上排列,而不是順序的一個(gè)接一個(gè)排列,這就是數(shù)據(jù)對(duì)其.
?? ??? ? ? 數(shù)據(jù)對(duì)其是cpu體系結(jié)構(gòu)的一部分,不是操作系統(tǒng)內(nèi)存結(jié)構(gòu)的一部分.數(shù)據(jù)對(duì)其有利于數(shù)據(jù)讀取的效率.
?? ??? ? ??
自然對(duì)其 : 如果一個(gè)變量的內(nèi)存地址正好是它數(shù)據(jù)類型長(zhǎng)度的整數(shù)倍,它就被稱作自然對(duì)齊.編寫可移植性高的代
? ? ? ? ? ?碼要避免對(duì)齊問題,保證所有數(shù)據(jù)類型都能自然對(duì)齊.?? ??? ?
----------------------------------------------------------------------------------------------------
一維數(shù)組:

定義 ? : [存儲(chǔ)類型] <數(shù)據(jù)類型> <數(shù)組名[n]>; ? ?//表示數(shù)組元素有n個(gè).
初始化 : 數(shù)組如果定義后不初始化,那么數(shù)組中的值都是垃圾值.定義數(shù)組時(shí)我們可以對(duì)數(shù)組進(jìn)行初始化.
? ? ? ? ?部分初始化 : int a[5] = {1,2,3}; ? ? ?//只初始化了a[0],a[1],a[2].
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?未初始化部分自動(dòng)為0.
? ? ? ? ?全部初始化 : int a[5] = {0}; ? ? ? ? ?//全部初始化為零.
?? ??? ? ? ? ? ? ? ? ?int a[5] = {1,2,3,4,5}; ?? ??? ??
? ? ? ? ? ? ? ? ? ? ? int a[] = {1,2,3,4,5}; ? //可變數(shù)組,數(shù)組元素的個(gè)數(shù)由初始化值的個(gè)數(shù)決定.
舉例 ? : int a[8] = {21,52,6,8,3,9,45,234};
? ? ? ? ?|----------------------------------------------------|
? ? ? ? ?| ?21 ?| ?52 ?| ?6 ?| ?8 ?| ?3 ?| ?9 ?| ?45 ?| ?234 ?|?
? ? ? ? ?|----------------------------------------------------|
? ? ? ? 0x00 ?0x04 ? 0x08 ?0x0C ?0x11 ?0x15 ? 0x19 ? 0x2D ? 0x32?? ?
?? ??? ?
一維數(shù)組元素的賦值或引用:?
1.一維數(shù)組元素的表示方法是 : 數(shù)組名[下標(biāo)]
2.數(shù)組元素的下標(biāo)從0開始 : a[0] ? : 一維數(shù)組a的第1個(gè)元素.
? ? ? ? ? ? ? ? ? ? ? ? ? a[1] ? : 一維數(shù)組a的第2個(gè)元素.
?? ??? ??? ??? ??? ??? ? ?a[2] ? : 一維數(shù)組a的第3個(gè)元素.
?? ??? ??? ??? ??? ??? ? ?......
?? ??? ??? ??? ??? ??? ? ?a[n-1] : 一維數(shù)組a的第n個(gè)元素.
3.對(duì)數(shù)組元素賦值就是將某個(gè)數(shù)組存儲(chǔ)到某個(gè)數(shù)組元素對(duì)應(yīng)的存儲(chǔ)空間內(nèi).
? 對(duì)數(shù)組元素的引用就是將數(shù)組元素對(duì)應(yīng)的存儲(chǔ)空間內(nèi)的數(shù)據(jù)取出來.
? 我們可以將每個(gè)數(shù)組元素看成一個(gè)相對(duì)獨(dú)立的變量.
4.對(duì)數(shù)組元素必須逐個(gè)賦值或者引用,也就是不可能一次性操作數(shù)組中多個(gè)或者所有的元素.
5.對(duì)數(shù)組元素賦值 ? : a[i] = 數(shù)據(jù);
6.對(duì)數(shù)組元素的引用 : 變量 = a[i];?
----------------------------------------------------------------------------------------------------
二維數(shù)組:

定義 ? : [存儲(chǔ)類型] <數(shù)據(jù)類型> <數(shù)組名[m][n]>; ? ? ? ?//表示有m行(m個(gè)一維數(shù)組)、n列(一維數(shù)組的長(zhǎng)度).
初始化 : int a[2][4] = {0}; ? ? ? ? ? ? ? ? ? ? ? ? ? //全部初始化為0.
? ? ? ? ?int a[2][4] = {1,2,3,4,5,6,7,8}; ? ? ?//按行全部初始化.
? ? ? ? ?int a[][4] = {1,2,3,4,5}; ? ? ?? ??? ??? ? ? ? ?//按行部分初始化,行數(shù)是可變的.
? ? ? ? ?int a[2][4] = {{1,2,3,4},{1,2,3,4}}; ? ? ? ? //降維全部初始化,等價(jià)于按行全部初始化.
? ? ? ? ?int a[2][4] = {{1,2},{1,2,3}}; ? ? ? ? ? ? ? //降維部分初始化.
? ? ? ? ?int a[][4] = {{1,2,3,4},{5}}; ? ? ? ? ? ? ? ?//降維部分初始化.
舉例 ? : int a[3][8] = {{43,554,6,7,3,34,5,32},
? ? ? ? ? ? ? ? ? ? ? ? {23,43,5,6,7,4,54,456},
?? ??? ??? ??? ??? ??? ?{21,52,6,8,3,9,45,234}
?? ??? ??? ??? ??? ? ? };
?? ??? ?----------------------------------------------->?? ??? ??? ? ??
?? ??? ?0x3C ? 0x40 ? 0x44 ?0x48 ?0x4C ?0x50 ?0x54 ? 0x58 ??
? ? ? ? ?|----------------------------------------------------|
? ? 0x3C | ?21 ?| ?52 ?| ?6 ?| ?8 ?| ?3 ?| ?9 ?| ?45 ?| ?234 ?|?
? ? ? ? ?|----------------------------------------------------|
? ? 0x20 | ?23 ?| ?43 ?| ?5 ?| ?6 ?| ?7 ?| ?4 ?| ?54 ?| ?456 ?|?
? ? ? ? ?|----------------------------------------------------|
?? ?0x00 | ?43 ?| ?554 | ?6 ?| ?7 ?| ?3 ?| ?34 | ?5 ? | ?32 ? |?
? ? ? ? ?|----------------------------------------------------|
? ? ? ? 0x00 ?0x04 ? 0x08 ?0x0C ?0x10 ?0x14 ? 0x18 ? 0x1C ??
?? ? ? ?-----------------------------------------------> ?
二維數(shù)組元素的賦值或引用:?
1.二維數(shù)組元素的表示方法是 : 數(shù)組名[行下標(biāo)][列下標(biāo)]
2.數(shù)組元素的下標(biāo)從0開始 : a[0][0] : 二維數(shù)組的第1行第1列.
? ? ? ? ? ? ? ? ? ? ? ? ? a[0][1] : 二維數(shù)組的第1行第2列.
?? ??? ??? ??? ??? ??? ? ?......
?? ??? ??? ??? ??? ??? ? ?a[0][n-1] : 二維數(shù)組的第1行第n列.
?? ??? ??? ??? ??? ??? ? ?a[1][0] : 二維數(shù)組的第2行第1列.
?? ??? ??? ??? ??? ??? ? ?a[2][1] : 二維數(shù)組的第3行第3列.
?? ??? ??? ??? ??? ??? ? ?......
? ? ? ? ? ? ? ? ? ? ? ? ? a[m-1][n-1] : 二維數(shù)組的第m行第n列.
3.對(duì)數(shù)組元素賦值就是將某個(gè)數(shù)組存儲(chǔ)到某個(gè)數(shù)組元素對(duì)應(yīng)的存儲(chǔ)空間內(nèi).
? 對(duì)數(shù)組元素的引用就是將數(shù)組元素對(duì)應(yīng)的存儲(chǔ)空間內(nèi)的數(shù)據(jù)取出來.
? 我們可以將每個(gè)數(shù)組元素看成一個(gè)相對(duì)獨(dú)立的變量.
4.對(duì)數(shù)組元素必須逐個(gè)賦值或者引用,也就是不可能一次性操作數(shù)組中多個(gè)或者所有的元素.
5.對(duì)數(shù)組元素賦值 ?: a[i][j] = 數(shù)據(jù);
6.對(duì)數(shù)組元素的引用: 變量 = a[i][j];?
注: 對(duì)于二維數(shù)組,我們可以將數(shù)組名看作第一個(gè)一維數(shù)組的數(shù)組名.而從a[1]開始,a[i]可以表示對(duì)應(yīng)的一維數(shù)組
? ? 數(shù)組名.
----------------------------------------------------------------------------------------------------
數(shù)組與字符串:
字符串: 由多個(gè)字符組成的集合就是字符串.
? ? ? ? 字符串一般表示方法是雙引號(hào)+字符串內(nèi)容 : "ahdfsfjljgsdaljfd"
?? ??? ?所有的字符串都是以'\0'作為結(jié)束符的.比如,字符串"abc",他實(shí)際存儲(chǔ)的是字符'a','b','c','\0'.
一維數(shù)組與字符串 : 我們可以通過一維數(shù)組存儲(chǔ)一個(gè)字符串.
? ? ? ? ? ? ? ? ? ?比如通過一維數(shù)組存儲(chǔ)字符串"hello world!"
? ? ? ? ? ? ? ? ? ?char c[] = {'h','e','l','l','o',' ','w','o','r','l','d','\0'};
?? ??? ??? ??? ? ? char c[] = "hello world";
二維數(shù)組與字符串 : 我們可以通過二維數(shù)組存儲(chǔ)多個(gè)字符串.
? ? ? ? ? ? ? ? ? ?比如通過二維數(shù)組存儲(chǔ)字符串"hello"和"world".
?? ??? ??? ??? ? ? char c[][32] = {
?? ??? ??? ??? ? ? ? ? ? {'h','e','l','l','o','\0'},
?? ??? ??? ??? ??? ? ? ? {'w','o','r','l','d','\0'}
?? ??? ??? ??? ? ? ? ? ?};
----------------------------------------------------------------------------------------------------
多維數(shù)組 : 三維及三維以上的數(shù)組我們稱之為多維數(shù)組.
? 對(duì)于二維數(shù)組,我們可以理解為多個(gè)一維數(shù)組的集合;那么對(duì)于三維數(shù)組,我們就可以理解為多個(gè)二維數(shù)組的集合.
其它高維數(shù)組(三維以上),我們可以按照此規(guī)律類推.實(shí)際編程中,高維數(shù)組幾乎不會(huì)用到.

三維數(shù)組的定義 : [存儲(chǔ)類型] <數(shù)據(jù)類型> <數(shù)組名[z][m][n]>; ? ? ? ?
? ? ? ? ? ? ? ? ?z表示有多少個(gè)二維數(shù)組,m表示每個(gè)二維數(shù)組有m行(m個(gè)一維數(shù)組)、n列(一維數(shù)組的長(zhǎng)度).
? ? ? ? ? ? ? ? ?三維數(shù)組的其它操作跟一,二維數(shù)組都是一樣的.
----------------------------------------------------------------------------------------------------

總結(jié):

? ?以上是對(duì)數(shù)組與字符串的講解,非常實(shí)用于各位小白和剛剛?cè)腴T學(xué)習(xí)C的朋友們,如果大家對(duì)C感興趣的話,可以進(jìn)專門為小白提供學(xué)習(xí)場(chǎng)地的C語言學(xué)習(xí)群哦,群里面有免費(fèi)的視頻資料,以及系統(tǒng)開發(fā)路線。各位感興趣的朋友可以加群:873521803進(jìn)來學(xué)習(xí)哦!歡迎大家加入!

?

總結(jié)

以上是生活随笔為你收集整理的C语言小白——数组与字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。