char *str[]="Hello World!"; char *str; str = "Hello world"
理解:字符串指針變量自己是一個變量,用於存放字符串的首地址。而字符串自己是存放在以該首地址爲首的一塊連續的內存空間中並以 0 做爲串的結束。數組
int main(void){ char *a= "bcd" ; printf("輸出字符:%c \n", *a); /*輸出字符,使用"%c"*/ printf("輸出字符:%c \n", *(a+1) ); /*輸出字符,使用"%c"*/ printf("輸出字符串:%s \n", a); /*輸出字符串,使用"%s";並且a以前不能有星號"*" */ system("pause"); }
運行結果:app
輸出字符:b 輸出字符:c 輸出字符串:bcd
char str[]="Iamhappy";
理解:字符數組是由若干個數組元素組成的,它可用來存放整個字符串。(即用字符數組來存放字符串)。指針
char str[10]={'I','','a','m','','h','a','p','p','y'};
錯誤的賦值方式:code
char str[20]; str="Iamhappy";
在C語言,有兩種方式表示和存放一個字符串內存
char str[]="I love u";
數組名就是字符串的首地址字符串
char *str="I love u";
指針變量就是字符串的首地址變量
兩種表示方式的字符串輸出都用:printf("%sn", str);
%s 表示輸出一個字符串,給出字符指針變量名 str(對於第一種表示方法,字符數組名便是字符數組的首地址,與第二種中的指針意義是一致的),則系統先輸出它所指向的一個字符數據,而後自動使 str 自動加 1,使之指向下一個字符...,如此,直到遇到字符串結束標識符 0 。
char *str[] = {"Hello", "C++", "World"}; //char (*str)[] = ... int i; for(i=0; i<3; i++) printf("%s\n", str[i]);
*(*(str+1)+2)
:表示數組的第二個元素的內容(char指針),指向的第三個字符(C++中的第二個+)