字元 位址詳解(及字串指標 字元陣列關係)

2021-08-02 23:10:39 字數 1347 閱讀 9916

前驅結點:指標、輸入輸出(請參照本專題其他文章)

位址,就是計算機找東西的「位置編號」。

記憶體,就是那個「位置編號」裡存的東西。

是不是很形象?「位址」和「你想找的房子(記憶體)」

位址在組合語言、編譯原理、計算機組成原理課程中都有提到,但是在高階一些的語言就見不到了,被隱藏了。

彙編和編譯原理中提到的位址用在陣列上,彙編、作業系統的定址,組成原理的」程式記憶體「都有提到。

在c語言中,位址可以通過取位址符&得到,可以通過指標變數儲存、讀取或者更改

指標(位址),有了它,就可以找到執行的開始點(函式指標),就可以在形參函式內改變外面的值(不是全域性變數也可以)。總之是乙個很有力的工具!指標的各種應用:

最堅實基礎實在的玩意,用指標變數(也就是位址變數)就可以非常自由的訪問資料,比如我就能用**&p訪問*p(雖然平時不可能這麼用)。來自:

#include#define fun(n) printf(#n " = %s\n", (n));//輸出變數名的方法===

void main()

;//這種方法可以自動賦\0

char c = "hello world!";//字元陣列裡最簡單的方法

char d[7] = , };//綜合了c的方法,並且二維陣列可以省略第一維(只需知道 幾個分為「一組」,分為「幾組」計算機會自己搞定)

char e[10];

printf("請輸入9個以內的字元(測試e)");

scanf("%s",e);//因為陣列首位址就是陣列名,所以沒有取位址符&,在此直接按%s字串格式輸入,方便

printf("e=%s\n", e);

printf("b[2]=%c\n", b[2]);

fun(a);//===fun函式在預定義里寫了,均按照%s字串輸出

fun(b);//===

fun(c);//===

fun(d);//===

}

查到的輸出變數名的方法!很不錯!

#define fun(n) printf(#n " = %s\n", (n));//輸出變數名的方法

#includevoid main()

平時最簡單的方式,在自己的什麼學生管理系統就建議設成字元指標型別,還不用擔心什麼「燙燙燙」、」屯屯屯「之類的未初始化的bug

char *p1 = "我是p1";//指標變數定義時賦值

字串及字元指標

近來在學習字串的一些操作,對字串有些認識 1 字串在使用時才動態分配的。2 程式在宣告字串變數時,實際分配的是32位的記憶體空間的乙個指標。該指標指向儲存實際字串的記憶體位址。當字串為空時,其指標值為nil。所以 str borland delphi sizeof str 返回的結果將是4,而不是字...

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...

C 字元 字串 字元陣列 字串指標 指標陣列

一 c 字元 字串 字元陣列 字串指標 指標陣列 前言 一 字元指標 字元陣列 二 字串指標 三 字串 指標陣列 四 常用方法 參考為了深入理解c 並時常回顧學過的知識點,對c 知識點進行記錄總結。參考1字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...