最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析C語言中對(duì)于char*和char[]的理解

 更新時(shí)間:2023年02月06日 15:00:54   作者:ZSYL  
char * s 只是一個(gè)保存字符串首地址的指針變量,char a[]是許多連續(xù)的內(nèi)存單元,單元中的元素是char型,char * 和 char a[]具有相同的效果,源于字符串的本質(zhì),這篇文章主要介紹了C語言中對(duì)于char*和char[]的理解,需要的朋友可以參考下

C語言對(duì)于char*和char[]的理解

1、char*和char[]的共同點(diǎn)

都是指針,指向第一個(gè)字符所在的地址,C語言指針可以代替數(shù)組使用。

指針也是一種變量,只不過它的內(nèi)存單元中保存的是一種標(biāo)識(shí)其他位置的地址,而地址也是整數(shù),在32位平臺(tái)下,就是32位,4個(gè)字節(jié)

指針的指向是指 指針變量所保存的其他的地址單元中 所存放的數(shù)據(jù)類型。

int *ptr; //ptr指針保存的地址所在內(nèi)存單元中的數(shù)據(jù)類型是整型
float *p; //這個(gè)p指針指向的內(nèi)存地址存放的元素類型就是浮點(diǎn)型

而不管指向的數(shù)據(jù)類型是哪種,其實(shí)對(duì)于指針本身的值永遠(yuǎn)是整型,因?yàn)樗4娴牡刂肪褪钦麛?shù)。

2、char*的用法

3、char[]的用法

//char[]
char a[20] = "aaa";
char b[] = "bbbbb";
char c[] = {'s','t','r','i','n','g','\0'};
char d[] = {"dddd"};
 
//一般這樣初始化
char num[20] = {0};
//初始化的目的是為了添加\0,否則\0會(huì)跑到莫名其妙的地方導(dǎo)致很多錯(cuò)誤。
//ASCII碼中0對(duì)應(yīng)的是nul符,即\0。這一行的意義就是給0~19都賦\0。

4、怎么輸出char*地址

雖然指針名就代表的是地址,但在輸出時(shí)需要加&,僅限cout。

const char* p = "ppp"; 
cout<<&p<<endl; //地址 方法一
cout<<(void*)p<<endl;//地址 方法二
cout<<p<<endl; //ppp
const char* a = "ppp";
printf("%p \n", a); //16進(jìn)制地址,不過 %p的輸出格式并不統(tǒng)一,有的編譯器帶0x前綴,有的不帶
printf("%#X \n", a);//16進(jìn)制地址,前綴統(tǒng)一是0x
printf("%s \n", a);  //ppp

5、strlen和sizeof

sizeofstrlen
性質(zhì)運(yùn)算符函數(shù)
功能以字節(jié)為單位計(jì)算操作數(shù)占用的內(nèi)存大小計(jì)算字符串的長(zhǎng)度(strlen函數(shù)遇到\0就會(huì)停止下來,返回\0前出現(xiàn)的字符個(gè)數(shù),不包括\0)
時(shí)間編譯時(shí)運(yùn)行時(shí)
參數(shù)類型/各種objectconst char*\char*\char[]
返回值size_tsize_t
頭文件運(yùn)算符沒有頭文件string.h

6、char*和string

區(qū)別stringchar*
本質(zhì)STL中的一個(gè)容器,string封裝了char*。指針
內(nèi)存管理由系統(tǒng)管理,除非系統(tǒng)內(nèi)存池用完,否則不會(huì)出現(xiàn)內(nèi)存問題棧/堆,如果是堆需要手動(dòng)釋放

7、總結(jié)

1、const在*前修飾指定的類型,const在*之后修飾指針。

2、 讀入只能是char [],因?yàn)樽x入需要明確的地址,注意必須標(biāo)定長(zhǎng)度。

總結(jié):char * s 只是一個(gè)保存字符串首地址的指針變量,char a[]是許多連續(xù)的內(nèi)存單元,單元中的元素是char型,char * 和 char a[]具有相同的效果,源于字符串的本質(zhì),即給一個(gè)字符串地址,便可以操作字符串,但char* 和 char a[]的本質(zhì)屬性不一樣。

改值還得是char*,因?yàn)榉奖恪?/p>

Reference

Link
Link

到此這篇關(guān)于C語言中對(duì)于char*和char[]的理解的文章就介紹到這了,更多相關(guān)C語言char*和char[]內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • QT實(shí)現(xiàn)多文件拖拽獲取路徑的方法

    QT實(shí)現(xiàn)多文件拖拽獲取路徑的方法

    這篇文章主要為大家詳細(xì)介紹了QT實(shí)現(xiàn)多文件拖拽獲取路徑的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 淺談 C++17 里的 Visitor 模式

    淺談 C++17 里的 Visitor 模式

    Visitor模式經(jīng)常用于將更新的設(shè)計(jì)封裝在一個(gè)類中,并且由待更改的類提供一個(gè)接受接口,其關(guān)鍵技術(shù)在于雙分派技術(shù),本文主要介紹 C++17 里的 Visitor 模式的相關(guān)資料,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • C++實(shí)現(xiàn)字符串類型相互轉(zhuǎn)換的代碼示例

    C++實(shí)現(xiàn)字符串類型相互轉(zhuǎn)換的代碼示例

    在C/C++編程中,字符串是非?;A(chǔ)且常用的數(shù)據(jù)類型,但是由于不同的編程語言或標(biāo)準(zhǔn)庫可能采用不同的字符串類型,因此在不同的應(yīng)用場(chǎng)景下可能需要進(jìn)行字符串類型的相互轉(zhuǎn)換,本文將介紹如何在C/C++中將char*,std::string,QString,CString/MFC?String相互轉(zhuǎn)換
    2023-06-06
  • C++元編程語言初步入門詳解

    C++元編程語言初步入門詳解

    這篇文章主要為大家介紹了C++元編程語言初步入門的詳解示例,文中包含詳細(xì)的基本概念及運(yùn)用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • C++實(shí)現(xiàn)通訊錄管理系統(tǒng)

    C++實(shí)現(xiàn)通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C/C++利用篩選法算素?cái)?shù)的方法示例

    C/C++利用篩選法算素?cái)?shù)的方法示例

    這篇文章主要給大家介紹了關(guān)于利用C/C++篩選法算素?cái)?shù)的相關(guān)資料,文中給大家列舉了普通枚舉法和篩選法兩種方法實(shí)現(xiàn)的方法示例,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • 老程序員教你一天時(shí)間完成C語言掃雷游戲

    老程序員教你一天時(shí)間完成C語言掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)掃雷游戲初級(jí)版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++ 迷宮游戲?qū)崿F(xiàn)代碼

    C++ 迷宮游戲?qū)崿F(xiàn)代碼

    這篇文章主要介紹了C++ 迷宮游戲?qū)崿F(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C++ const修飾變量和修飾函數(shù)介紹

    C++ const修飾變量和修飾函數(shù)介紹

    這篇文章主要介紹了C++ const修飾變量和修飾函數(shù)介紹,本文直接用實(shí)例來講解各自的作用,并總結(jié)了各自的使用技巧,需要的朋友可以參考下
    2015-03-03
  • C++標(biāo)準(zhǔn)庫封裝的vector數(shù)組

    C++標(biāo)準(zhǔn)庫封裝的vector數(shù)組

    這篇文章主要介紹了C++標(biāo)準(zhǔn)庫封裝的vector數(shù)組,vector創(chuàng)建的對(duì)象包含眾多封裝好的函數(shù),想了解其相關(guān)資料的小伙伴可以參考下面文章內(nèi)容,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-03-03

最新評(píng)論

巴马| 楚雄市| 齐河县| 古丈县| 东至县| 中卫市| 全椒县| 日喀则市| 远安县| 温宿县| 多伦县| 凤阳县| 梅州市| 利津县| 遂昌县| 秭归县| 贵溪市| 临清市| 泰州市| 黑龙江省| 麻江县| 沙雅县| 旬邑县| 靖江市| 敦化市| 黄石市| 舞钢市| 公主岭市| 准格尔旗| 手机| 马龙县| 莱阳市| 磐安县| 繁峙县| 绥德县| 麻城市| 密山市| 罗平县| 海伦市| 英德市| 辽阳县|