十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要為大家展示了“C++中字符和字符串及數(shù)組還有指針之間存在哪些關(guān)系”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“C++中字符和字符串及數(shù)組還有指針之間存在哪些關(guān)系”這篇文章吧。
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南皮,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
字符串指針變量本身是一個變量,用于存放字符串的首地址。而字符串本身是存放在以該首地址為首的一塊連續(xù)的內(nèi)存空間中并以\0作為串的結(jié)束。
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");/*為了能看到輸出結(jié)果*/
}
運行結(jié)果如下:
輸出字符:b
輸出字符:c
輸出字符串:bcd
2、若字符串常量出現(xiàn)在在表達式中,代表的值為該字符串常量的第一個字符的地址。所以hello僅僅代表的是其地址。原聲明方式相當于以下聲明方式:
char*a;
a="hello";/*這里字符串"hello"僅僅代表其第一個字符的地址*/
字符數(shù)組是由于若干個數(shù)組元素組成的,它可用來存放整個字符串。(即用字符數(shù)組來存放字符串)。
在C語言中,將字符串作為字符數(shù)組來處理。(C++中不是)
1).可以用字符串常量來初始化字符數(shù)組:
charstr[]={"Iamhappy"};
可以省略花括號
charstr[]="Iamhappy";#系統(tǒng)自動加入\0
注意:上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對其元素一一賦值。
下面的賦值方法是錯誤的:
charstr[20];
str="Iamhappy";
對字符數(shù)組的各元素逐個賦值。
charstr[10]={'I','','a','m','','h','a','p','p','y'};
(1)用字符數(shù)組存放一個字符串
charstr[]="IloveChina";
(2)用字符指針指向一個字符串
char*str="IloveChina";
兩種表示方式的字符串輸出都用:printf("%s\n",str);
%s表示輸出一個字符串,給出字符指針變量名str(對于第一種表示方法,字符數(shù)組名即是字符數(shù)組的首地址,與第二種中的指針意義是一致的),則系統(tǒng)先輸出它所指向的一個字符數(shù)據(jù),然后自動使str自動加1,使之指向下一個字符...,如此,直到遇到字符串結(jié)束標識符\0。
char*argv:理解為字符串
char**argv:理解為字符串指針
char*argv[]:字符串指針數(shù)組
intmain(intargc,char*argv[])這是一個典型的數(shù)組名(或者說是指針數(shù)組)做函數(shù)參數(shù)的例子,而且還是沒有指定大小的形參數(shù)組。
有時為了再被調(diào)用函數(shù)中處理數(shù)組元素的需要,可以另設(shè)一個形參,傳遞需要處理的數(shù)組元素的個數(shù)。而且用數(shù)組名做函數(shù)實參時,不是吧數(shù)組元素的值傳遞給形參,而是把實參數(shù)組的首元素的地址傳遞給形參數(shù)組,這樣兩個數(shù)組久共同占有同一內(nèi)存單元。和變量作函數(shù)參數(shù)的作用不一樣。
以上是“C++中字符和字符串及數(shù)組還有指針之間存在哪些關(guān)系”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!