<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          33 通過指針引用字符串

          共 1562字,需瀏覽 4分鐘

           ·

          2021-07-16 15:32

          點(diǎn)擊藍(lán)字

          關(guān)注我們

          DRAGON BOAT FESTIVAL

          01 字符串的引用形式


          在C程序中,字符串是存放在字符數(shù)組中的。

          用字符數(shù)組存放一個(gè)字符串,可以通過數(shù)組名和下標(biāo)引用字符串中的一個(gè)字符,也可以通過數(shù)組名和格式聲明%s輸出該字符串。

          用字符指針變量指向一個(gè)字符串常量,通過字符指針變量引用字符串常量。

          通過字符數(shù)組名或字符指針變量可以輸出一個(gè)字符串,而對(duì)一個(gè)數(shù)值型數(shù)組,是不能企圖用數(shù)組名輸出它的全部元素的。


          02 字符指針作函數(shù)參數(shù)


          如果想把一個(gè)字符串從一個(gè)函數(shù)“傳遞”到另一函數(shù),可以用地址傳遞的方法,即用字符數(shù)組名作參數(shù),也可以用字符指針變量作參數(shù)。

          在被調(diào)用的函數(shù)中可以改變字符串的內(nèi)容,在主調(diào)函數(shù)中可以引用改變后的字符串。


          字符串字面值常量作為右值時(shí),就是這個(gè)字符串對(duì)應(yīng)的字符數(shù)組的名稱,也就是這個(gè)字符串在內(nèi)存中的地址。

          char* msg = "Hello world";

          指針也是一種數(shù)據(jù),指針變量也是一種變量,因此指針 這種數(shù)據(jù)也符合變量和內(nèi)存主題中的特性。
          int main(void){    int num = 97;    int *p1  = &num;    char* p2 = (char*)(&num);
              printf("%d",*p1);    //輸出  97 putchar(*p2); //輸出 a return 0;}

          指針的值:很好理解,如上面的num 變量 ,其地址的值就是0028FF40 ,因此 p1的值就是0028FF40。數(shù)據(jù)的地址用于在內(nèi)存中定位和標(biāo)識(shí)這個(gè)數(shù)據(jù),因?yàn)槿魏?個(gè)內(nèi)存不重疊的不同數(shù)據(jù)的地址都是不同的。


          指針的類型:指針的類型決定了這個(gè)指針指向的內(nèi)存的字節(jié)數(shù)并如何解釋這些字節(jié)信息。一般指針變量的類型要和它指向的數(shù)據(jù)的類型匹配。

          由于num的地址是0028FF40,因此p1 和 p2的值都是0028FF40

          *p1 : 將從地址0028FF40 開始解析,因?yàn)閜1是int類型指針,int占4字節(jié),因此向后連續(xù)取4個(gè)字節(jié),并將這4個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)解析為一個(gè)整數(shù) 97。


          *p2 : 將從地址0028FF40 開始解析,因?yàn)閜2是char類型指針,char占1字節(jié),因此向后連續(xù)取1個(gè)字節(jié),并將這1個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)解析為一個(gè)字符,即'a'。

          同樣的地址,因?yàn)橹羔樀念愋筒煌瑢?duì)它指向的內(nèi)存的解釋就不同,得到的就是不同的數(shù)據(jù)。

          、、


          03 使用字符指針變量和字符數(shù)組的比較


          字符數(shù)組由若干個(gè)元素組成,每個(gè)元素中放一個(gè)字符,而字符指針變量中存放的是地址(字符串第1個(gè)字符的地址),絕不是將字符串放到字符指針變量中。

          賦值方式。可以對(duì)字符指針變量賦值,但是不能對(duì)數(shù)組名賦值。

          初始化的含義。對(duì)字符指針變量賦初值。

          存儲(chǔ)單元的內(nèi)容。編譯時(shí)為字符數(shù)組分配若干個(gè)存儲(chǔ)單元,以存放各元素的值,而對(duì)字符指針變量,只分配一個(gè)存儲(chǔ)單元(Visual C++為指針變量分配4個(gè)字節(jié))。

          指針變量的值是可以改變的,而數(shù)組名代表一個(gè)固定的值(數(shù)組首元素地址),不能改變。

          字符數(shù)組中各元素的值是可以改變的,但字符指針變量指向的字符串常量中的內(nèi)容時(shí)不可以被取代的。

          引用數(shù)組元素。對(duì)字符數(shù)組可以用下標(biāo)法引用一個(gè)數(shù)組元素,也可以用地址法。

          用指針變量指向一個(gè)格式字符串,可以用它代替printf函數(shù)中的格式字符串。





          球分享

          球點(diǎn)贊

          球在看

          瀏覽 40
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美mv日韩mv国产mv网址 | 天天操天天日天天干 | 亚洲在线观看视频网站 | 国产偷窥熟女精品视频大全 | 无码15P |