從記憶體角度 剖析 字元陣列 和字元指標

2021-09-22 14:10:32 字數 652 閱讀 1190

我們都知道,陣列 和指標原本是兩個完全不同程度的概念,他們表示的含義也不相同,然而我在c語言中經常會遇到將陣列轉換成指標來使用的情況.有時候,我們容易混淆兩者.今天我以一道面試題來剖析字元陣列和字元指標 的區別

首先 我們從理論出發,看看兩者的概念和定義:

1 陣列:

概念(what):一組相同資料型別的有序資料的集合.

用處(how):用來批量處理資料

特點:陣列在記憶體中的物理結構是連續的

2 指標:

概念(what):指標就是位址

純位址(房間號)

所指向資料的型別(房間大小)

用法(how):通過指標可以間接訪問到以它為位址的記憶體單元

2,實踐是檢驗真理的唯一標準,下面我們以**為例來剖析具體細節,解釋在 **的注釋中

#include#includeint main()

else

if (str3 == str4)

else

system("pause");

return 0;

}

執行結果如下

字元陣列和字元指標

字元陣列是一段記憶體空間 字元指標是乙個位址,指向一串字元。char str abcd char str abcd 字元陣列是一段記憶體空間 字元指標是乙個位址,指向一串字元 char str abcd char str abcd 上面這兩跳複製語句很相似,其實根本就不是一碼事。對於兩個 abcd ...

字元指標和字元陣列

1.字元指標可以指向乙個字串。我們可以用字串常量對字元指標進行初始化。例如,有說明語句 char str this is a string.是對字元指標進行初始化。此時,字元指標指向的是乙個字串常量的首位址,即指向字串的首位址。這裡要注意字元指標與字元陣列之間的區別。例如,有說明語句 char st...

字元陣列和字元指標

1.在函式getmem棧內定義個陣列,將位址return給main函式的指標str eg char p hello world char getmemory void char p hello world return p void test void char str null str getme...