c語言中char* 代表什麽
阿新 • • 發佈:2017-05-10
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* 代表什麽