區分 :字元指標變數和字元陣列的區別和聯絡
用字元陣列和字元指標變數都可實現字串的儲存和運算。但是兩者是有區別的。在使用時應注意以下幾個問題:
1) 字串指標變數本身是乙個變數,用於存放字串的首位址。而字串本身是存放在以該首位址為首的一塊連續的記憶體空間中並以『\0』作為串的結束。字元陣列是由於若干個陣列元素組成的,它可用來存放整個字串。
2) 對字串指標方式
char *ps="c language";
可以寫為:
char *ps;
ps="c language";
而對陣列方式:
static char st=;
不能寫為:
char st[20];
st=;
而只能對字元陣列的各元素逐個賦值。
從以上幾點可以看出字串指標變數與字元陣列在使用時的區別,同時也可看出使用指標變數更加方便。
前面說過,當乙個指標變數在未取得確定位址前使用是危險的,容易引起錯誤。但是對指標變數直接賦值是可以的。因為c系統對指標變數賦值時要給以確定的位址。
因此,char *ps="c langage";
或者char *ps;
ps="c language";
都是合法的。
字元指標變數和字元陣列的對比
使用字元陣列和指標變數都能實現字串的儲存和運算,但它們兩者之間是有區別的,不應混為一談,主要有一下幾點 1 字元陣列由若干個元素組成,每個元素中放乙個字元,而字元指標變數中存放的是位址 字串中第乙個字元的位址 絕不是將字串放到字元指標變數中。2 賦值方式。可以對字元指標變數賦值,但不能對陣列名賦值。...
字元指標變數和字元陣列的討論
經常會弄錯字元指標變數和字元陣列的使用方式 寫在這裡方便查閱 1 內容不同 字元陣列由若干個元素組成,每個元素放乙個字元。而字元指標變數中存放的是位址 字串第乙個字元的位址 決不是將字串放到字元指標變數中。2 賦值方式 對字元陣列只能對各個元素賦值,不能用以下方法 char str 14 str i...
字元陣列和字元指標
字元陣列是一段記憶體空間 字元指標是乙個位址,指向一串字元。char str abcd char str abcd 字元陣列是一段記憶體空間 字元指標是乙個位址,指向一串字元 char str abcd char str abcd 上面這兩跳複製語句很相似,其實根本就不是一碼事。對於兩個 abcd ...