溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++中字符和字符串及數(shù)組還有指針之間存在哪些關(guān)系

發(fā)布時(shí)間:2021-10-15 10:26:03 來(lái)源:億速云 閱讀:109 作者:小新 欄目:編程語(yǔ)言

這篇文章主要為大家展示了“C++中字符和字符串及數(shù)組還有指針之間存在哪些關(guān)系”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C++中字符和字符串及數(shù)組還有指針之間存在哪些關(guān)系”這篇文章吧。

  字符串指針變量本身是一個(gè)變量,用于存放字符串的首地址。而字符串本身是存放在以該首地址為首的一塊連續(xù)的內(nèi)存空間中并以\0作為串的結(jié)束。

字符指針

  1、*a只是指向一個(gè)字符。

  舉例如下:

  實(shí)例

  #include

  #include

  intmain(void){

  char*a="bcd";

  printf("輸出字符:%c\n",*a);/*輸出字符,使用"%c"*/

  printf("輸出字符:%c\n",*(a+1));/*輸出字符,使用"%c"*/

  printf("輸出字符串:%s\n",a);/*輸出字符串,使用"%s";而且a之前不能有星號(hào)"*"*/

  system("pause");/*為了能看到輸出結(jié)果*/

  }

  運(yùn)行結(jié)果如下:

  輸出字符:b

  輸出字符:c

  輸出字符串:bcd

  2、若字符串常量出現(xiàn)在在表達(dá)式中,代表的值為該字符串常量的第一個(gè)字符的地址。所以hello僅僅代表的是其地址。原聲明方式相當(dāng)于以下聲明方式:

  char*a;

  a="hello";/*這里字符串"hello"僅僅代表其第一個(gè)字符的地址*/

字符數(shù)組

  字符數(shù)組是由于若干個(gè)數(shù)組元素組成的,它可用來(lái)存放整個(gè)字符串。(即用字符數(shù)組來(lái)存放字符串)。

  在C語(yǔ)言中,將字符串作為字符數(shù)組來(lái)處理。(C++中不是)

字符數(shù)組初始化的方法:

  1).可以用字符串常量來(lái)初始化字符數(shù)組:

  charstr[]={"Iamhappy"};

  可以省略花括號(hào)

  charstr[]="Iamhappy";#系統(tǒng)自動(dòng)加入\0

  注意:上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時(shí)使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對(duì)其元素一一賦值。

  下面的賦值方法是錯(cuò)誤的:

  charstr[20];

  str="Iamhappy";

  對(duì)字符數(shù)組的各元素逐個(gè)賦值。

  charstr[10]={'I','','a','m','','h','a','p','p','y'};

在C語(yǔ)言中,可以用兩種方法表示和存放字符串:

 ?。?)用字符數(shù)組存放一個(gè)字符串

  charstr[]="IloveChina";

  (2)用字符指針指向一個(gè)字符串

  char*str="IloveChina";

  兩種表示方式的字符串輸出都用:printf("%s\n",str);

  %s表示輸出一個(gè)字符串,給出字符指針變量名str(對(duì)于第一種表示方法,字符數(shù)組名即是字符數(shù)組的首地址,與第二種中的指針意義是一致的),則系統(tǒng)先輸出它所指向的一個(gè)字符數(shù)據(jù),然后自動(dòng)使str自動(dòng)加1,使之指向下一個(gè)字符...,如此,直到遇到字符串結(jié)束標(biāo)識(shí)符\0。

  char*argv:理解為字符串

  char**argv:理解為字符串指針

  char*argv[]:字符串指針數(shù)組

  intmain(intargc,char*argv[])這是一個(gè)典型的數(shù)組名(或者說(shuō)是指針數(shù)組)做函數(shù)參數(shù)的例子,而且還是沒(méi)有指定大小的形參數(shù)組。

  有時(shí)為了再被調(diào)用函數(shù)中處理數(shù)組元素的需要,可以另設(shè)一個(gè)形參,傳遞需要處理的數(shù)組元素的個(gè)數(shù)。而且用數(shù)組名做函數(shù)實(shí)參時(shí),不是吧數(shù)組元素的值傳遞給形參,而是把實(shí)參數(shù)組的首元素的地址傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組久共同占有同一內(nèi)存單元。和變量作函數(shù)參數(shù)的作用不一樣。

以上是“C++中字符和字符串及數(shù)組還有指針之間存在哪些關(guān)系”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI