陣列的一些回顧

2021-10-24 20:22:00 字數 2112 閱讀 2598

1.陣列名的特殊性

先說結論

陣列名代表陣列首元素位址,也是乙個指標,唯讀的常量,是乙個常量指標,不能修改。

陣列首元素的位址和陣列位址是兩個不同的概念

陣列名是陣列首元素的起始位址,但並不是陣列的起始位址

通過將取位址符&作用於陣列名可以得到整個陣列的起始位址

int c[200]=;

c+1 步長四個位元組

&c+1步長200*4個位元組

#define _crt_secure_no_warnings

#include

#include

#include

//c語言中沒有字串型別,通過字元陣列來模擬字串

//c 庫函式 size_t strlen(const char *str) 計算字串 str 的長度,直到空結束字元,但不包括空結束字元

//sizeof(型別)字串型別,的大小,包括\0;

//c語言中的字串是以』\0』結束的字元陣列

陣列和指標有明顯區別,如圖所示

2.const的用法

const

const

int a;

//int

const b;

const

char

*c;char

*const d;

char buf[

100]

const

char

*const e ;

含義:

//第乙個第二個意思一樣 代表乙個常整形數

//第三個 c是乙個指向常整形數的指標(所指向的記憶體資料不能被修改,但是本身可以修改)

//第四個 d 常指標(指標變數不能被修改,但是它所指向記憶體空間可以被修改)

//第五個 e乙個指向常整形的常指標(指標和它所指向的記憶體空間,均不能被修改)

結論://指標變數和它所指向的記憶體空間變數,是兩個不同的概念。。。。。。

//看const 是放在*的左邊還是右邊 看const是修飾指標變數,還是修飾所指向的記憶體空變數

3.陣列指標、指標陣列

指標陣列就是陣列中的每個元素都是指標

陣列指標用於指向乙個陣列

陣列名是陣列首元素的起始位址,但並不是陣列的起始位址

通過將取位址符&作用於陣列名可以得到整個陣列的起始位址

定義陣列指標的三種方法

void

main()

4.多維陣列的本質

//多維陣列名的本質是陣列指標 指向低維陣列的指標 每次往後跳一維的維數  二級指標

//(a+i)代表整個第i行的位址 二級指標

//*(a+i) 代表第i行首元素位址 一級指標

//*(a+i)+j //&a[i][j]

char cbuf[30]

;// cbuf(1級指標) 代表陣列首元素的位址。。。&cbuf(二級指標) 代表整個陣列的位址

//&cbuf +1 等於跳過了整個陣列 因為指標跳多少是由他指向的資料型別決定的,指向的陣列就一次跳過陣列的大小

char array[10]

[30];

//array是二級指標

//(array + i) //相當於 整個第i行的陣列位址 //二級指標 &cbuf

//(*(array+i))//一維陣列的首位址 cbuf

//(* (array + i)) + j //相當於第i行第j列的位址。。。。&array[i][j]

//* (( * (array + i)) + j) //相當於第i行第j列的值。。。。<====>array[i][j]

2023年的一些回顧

2010年的風風雨雨,也已經過去了,很多事情也只能依稀記得,怎麼說呢?距離成功,距離財務等自由,還有很遠很遠的距離,可以算個轉折年吧。1月,在g公司,專案救火去了廣州,也對國內專案運作有了深刻體會,更加明白了事在人為的道理。外地作軟體專案的辛苦,只有幹過的人才知道。意外知道乙個同學在某行是個很有影響...

2023年的一些回顧

2010年的風風雨雨,也已經過去了,很多事情也只能依稀記得,怎麼說呢?距離成功,距離財務等自由,還有很遠很遠的距離,可以算個轉折年吧。1月,在g公司,專案救火去了廣州,也對國內專案運作有了深刻體會,更加明白了事在人為的道理。外地作軟體專案的辛苦,只有幹過的人才知道。意外知道乙個同學在某行是個很有影響...

關於「事件」的一些回顧

有關於事件的概念呢,記得以前看過乙個例子,關於貓逮老鼠的,就是說,老鼠進到乙個房間裡後,貓就開始逮老鼠。說老鼠不能直接告訴貓你來逮我吧,於是就通過乙個監視器來通知貓,一旦貓看到老鼠就開始逮了,而這個監視器便是 事件 例子 using system using system.collections.g...