您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C++中字符和字符串及數組還有指針之間存在哪些關系”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C++中字符和字符串及數組還有指針之間存在哪些關系”這篇文章吧。
字符串指針變量本身是一個變量,用于存放字符串的首地址。而字符串本身是存放在以該首地址為首的一塊連續的內存空間中并以\0作為串的結束。
1、*a只是指向一個字符。
舉例如下:
實例
#include
#include
intmain(void){
char*a="bcd";
printf("輸出字符:%c\n",*a);/*輸出字符,使用"%c"*/
printf("輸出字符:%c\n",*(a+1));/*輸出字符,使用"%c"*/
printf("輸出字符串:%s\n",a);/*輸出字符串,使用"%s";而且a之前不能有星號"*"*/
system("pause");/*為了能看到輸出結果*/
}
運行結果如下:
輸出字符:b
輸出字符:c
輸出字符串:bcd
2、若字符串常量出現在在表達式中,代表的值為該字符串常量的第一個字符的地址。所以hello僅僅代表的是其地址。原聲明方式相當于以下聲明方式:
char*a;
a="hello";/*這里字符串"hello"僅僅代表其第一個字符的地址*/
字符數組是由于若干個數組元素組成的,它可用來存放整個字符串。(即用字符數組來存放字符串)。
在C語言中,將字符串作為字符數組來處理。(C++中不是)
1).可以用字符串常量來初始化字符數組:
charstr[]={"Iamhappy"};
可以省略花括號
charstr[]="Iamhappy";#系統自動加入\0
注意:上述這種字符數組的整體賦值只能在字符數組初始化時使用,不能用于字符數組的賦值,字符數組的賦值只能對其元素一一賦值。
下面的賦值方法是錯誤的:
charstr[20];
str="Iamhappy";
對字符數組的各元素逐個賦值。
charstr[10]={'I','','a','m','','h','a','p','p','y'};
(1)用字符數組存放一個字符串
charstr[]="IloveChina";
(2)用字符指針指向一個字符串
char*str="IloveChina";
兩種表示方式的字符串輸出都用:printf("%s\n",str);
%s表示輸出一個字符串,給出字符指針變量名str(對于第一種表示方法,字符數組名即是字符數組的首地址,與第二種中的指針意義是一致的),則系統先輸出它所指向的一個字符數據,然后自動使str自動加1,使之指向下一個字符...,如此,直到遇到字符串結束標識符\0。
char*argv:理解為字符串
char**argv:理解為字符串指針
char*argv[]:字符串指針數組
intmain(intargc,char*argv[])這是一個典型的數組名(或者說是指針數組)做函數參數的例子,而且還是沒有指定大小的形參數組。
有時為了再被調用函數中處理數組元素的需要,可以另設一個形參,傳遞需要處理的數組元素的個數。而且用數組名做函數實參時,不是吧數組元素的值傳遞給形參,而是把實參數組的首元素的地址傳遞給形參數組,這樣兩個數組久共同占有同一內存單元。和變量作函數參數的作用不一樣。
以上是“C++中字符和字符串及數組還有指針之間存在哪些關系”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。