溫馨提示×

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

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

c語言中char* 代表什么

發(fā)布時(shí)間:2020-07-21 17:42:14 來源:網(wǎng)絡(luò) 閱讀:5470 作者:skinglzw 欄目:編程語言

1 c語言中,char* 代表 字符指針類型,當(dāng)其指向一個(gè)字符串的第一個(gè)元素時(shí),它就可以代表這個(gè)字符串了

2 示例

#include<stdio.h>

int main(){

    char* str = "learn c";

    printf("%s\n", str);

    getchar();

    return 0;

}

/*運(yùn)行結(jié)果是

learn c

*/

3 分析

  在char* str="learn c";中,"learn c"是長(zhǎng)度為8的字符數(shù)組常量,其最后一個(gè)元素是'\0',而這句代碼執(zhí)行的結(jié)果是將str指向了"learn c"的第一個(gè)字符'l',str后面的連續(xù)內(nèi)存依次存放'e','a','r','n',' ','c','\0'


4 擴(kuò)展

  c語言中的字符串是用字符數(shù)組來表示的,只是c語言規(guī)定了一個(gè)字符串結(jié)束標(biāo)志,即字符'\0',也就是遇到字符'\0'時(shí),這個(gè)字符串就結(jié)束了


5 關(guān)于 * 和 & 的謎題


假設(shè)有一個(gè) int 類型的變量 a,pa 是指向它的指針,那么*&a和&*pa分別是什么意思呢?


*&a可以理解為*(&a),&a表示取變量 a 的地址(等價(jià)于 pa),*(&a)表示取這個(gè)地址上的數(shù)據(jù)(等價(jià)于 *pa),繞來繞去,又回到了原點(diǎn),*&a仍然等價(jià)于 a。


&*pa可以理解為&(*pa),*pa表示取得 pa 指向的數(shù)據(jù)(等價(jià)于 a),&(*pa)表示數(shù)據(jù)的地址(等價(jià)于 &a),所以&*pa等價(jià)于 pa。


向AI問一下細(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