1. 程式人生 > >c語言中char* 代表什麽

c語言中char* 代表什麽

c 字符數組

1 c語言中,char* 代表 字符指針類型,當其指向一個字符串的第一個元素時,它就可以代表這個字符串了

2 示例

#include<stdio.h>

int main(){

char* str = "learn c";

printf("%s\n", str);

getchar();

return 0;

}

/*運行結果是

learn c

*/

3 分析

在char* str="learn c";中,"learn c"是長度為8的字符數組常量,其最後一個元素是‘\0‘,而這句代碼執行的結果是將str指向了"learn c"的第一個字符‘l‘,str後面的連續內存依次存放‘e‘,‘a‘,‘r‘,‘n‘,‘ ‘,‘c‘,‘\0‘


4 擴展

c語言中的字符串是用字符數組來表示的,只是c語言規定了一個字符串結束標誌,即字符‘\0‘,也就是遇到字符‘\0‘時,這個字符串就結束了


5 關於 * 和 & 的謎題


假設有一個 int 類型的變量 a,pa 是指向它的指針,那麽*&a和&*pa分別是什麽意思呢?


*&a可以理解為*(&a),&a表示取變量 a 的地址(等價於 pa),*(&a)表示取這個地址上的數據(等價於 *pa),繞來繞去,又回到了原點,*&a仍然等價於 a。


&*pa可以理解為&(*pa),*pa表示取得 pa 指向的數據(等價於 a),&(*pa)表示數據的地址(等價於 &a),所以&*pa等價於 pa。


本文出自 “我是程序我最大” 博客,請務必保留此出處http://skinglzw.blog.51cto.com/10729606/1923815

c語言中char* 代表什麽