• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            在C++的學(xué)習(xí)中,有人經(jīng)常搞不清楚“常量指針”和“指針常量”這兩個(gè)概念。其實(shí)簡(jiǎn)單一點(diǎn)講,“常量指針”所指向的地址上的數(shù)據(jù)是常量,而“指針常量”所指向的地址是常量,地址上面的數(shù)據(jù)是可以變化的。


                 下面看及格簡(jiǎn)單的例子,可以說明他們的區(qū)別:
                        第一個(gè)
             1 void main(){
             2     char *str1={"Hello"};
             3     char *str2={"Hello World"};
             4     char * const ptr1 =str1 ;
             5     //指針常量--指針本身是常量,指向的地址不可以變化,但是指向的地址所對(duì)應(yīng)的內(nèi)容可以變化
             6 
             7     ptr1 =str2; //錯(cuò)誤 因?yàn)檫@是一個(gè)常量指針,改變指向的地址了
             8 
             9     printf("%s \n",*ptr1);
            10     }
            11 
            12 
            13 // 編譯錯(cuò)誤    error C3892: 'ptr1' : you cannot assign to a variable that is const    
            14 


            第二個(gè)

             1 void main(){
             2     char *str1={"Hello"};
             3     char *str2={"Hello World"};
             4     char * const ptr1 =str1 ;
             5     //指針常量--指針本身是常量,指向的地址不可以變化,但是指向的地址所對(duì)應(yīng)的內(nèi)容可以變化
             6 
             7     *ptr1 ='A';// 正確 因?yàn)橹赶虻牡刂返膬?nèi)容是可以變化的
             8 
             9     printf("%c \n",*ptr1);
            10     }
            11 
            12 //輸出  A
            13 

            第三個(gè)

             1 void main(){
             2     char *str1={"Hello"};
             3     char *str2={"Hello World"};
             4     const char *ptr1 = str1;
             5     //常量指針--指向字符串常量,所指向的字符串內(nèi)容不能變,但是指向的地址可以變化
             6     
             7     ptr1=str2;// 正確 因?yàn)橹赶虻牡刂肥强梢宰兓?/span>
             8 
             9     printf("%s \n",ptr1);
            10     }
            11 
            12 //輸出 Hello World

            第四個(gè)

             1 void main(){
             2     char *str1={"Hello"};
             3     char *str2={"Hello World"};
             4     const char *ptr1 = str2;
             5     //常量指針--指向字符串常量,所指向的字符串內(nèi)容不能變,但是指向的地址可以變化
             6     
             7     ptr1='A';// 錯(cuò)誤 因?yàn)橹赶虻牡刂肥莾?nèi)容是不可以變化的
             8 
             9     printf("%c \n",ptr1);
            10     }
            11 
            12 
            13 //編譯錯(cuò)誤    error C2440: '=' : cannot convert from 'char' to 'const char *'
            14 

            相信從上面四個(gè)簡(jiǎn)單的例子可以看出他們不一樣的地方把,在這里要請(qǐng)大家注意一下的地方是:

            指針常量的申明:const 放在* 和指針名之間 Type * const pointer ;

            常量指針的申明:const放在類型說明符之前 const Type *pointer ;

            亚洲精品乱码久久久久久久久久久久 | 久久免费美女视频| 久久国产乱子精品免费女| 91精品国产高清久久久久久91 | 精品视频久久久久| 麻豆av久久av盛宴av| 99久久久精品| 奇米影视7777久久精品人人爽| 少妇精品久久久一区二区三区| 久久综合丝袜日本网| 久久强奷乱码老熟女网站| 国产综合久久久久| 久久亚洲精品成人无码网站| 久久电影网一区| 亚洲AV日韩AV天堂久久| 成人亚洲欧美久久久久| 久久夜色精品国产噜噜麻豆| 亚洲国产婷婷香蕉久久久久久 | 99久久国产热无码精品免费久久久久| 久久九色综合九色99伊人| 精品人妻久久久久久888| 四虎国产精品成人免费久久| 精品亚洲综合久久中文字幕| 欧美丰满熟妇BBB久久久| 无码国内精品久久人妻麻豆按摩| 精品久久久久久久无码 | 日韩AV无码久久一区二区| 久久综合久久伊人| 久久久亚洲精品蜜桃臀| 精品久久久无码中文字幕天天| 国产精品99久久久久久人| 久久久无码人妻精品无码| 久久精品国产亚洲AV影院| 久久这里都是精品| 久久国产劲爆AV内射—百度| 亚洲а∨天堂久久精品| 2021国产精品久久精品| 一本一本久久A久久综合精品| 国产精品99久久久精品无码| 亚洲AV无码久久精品蜜桃| 人妻无码αv中文字幕久久 |