常指针、指向常量的指针、指向常量的常指针
生活随笔
收集整理的這篇文章主要介紹了
常指针、指向常量的指针、指向常量的常指针
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
三者的區(qū)分
簡而言之~
常指針:地址不可變,內(nèi)容可變
指向常量的指針:地址可變,內(nèi)容不可變
指向常量的常指針:地址不可變,內(nèi)容不可變
樣例
代碼如下:
#include <iostream> using namespace std; int main() { /************指向常量的常指針(把指針所指的地址聲明為常量,所指向地址中存放的內(nèi)容也不能改變)************/const char *const name1="chen";//聲明一個指針變量name1,name1指針指向"chen"字符串的首地址/*-------name1【name[0]】--> | c |-------| h |-------| e |-------name1[3]--> | n |-------*/name1[3]='a';//錯誤【name1為指針,指向”chen“字符串的首地址(相當于一個有一個數(shù)組name1,name1[3]即表示該數(shù)組中下標為3的元素)】name1="lin";//錯誤【該語句表示,將該指針改為指向”lin“字符串的首地址,錯誤】name1=new char[5];//錯誤【該語句表示,new一個char型數(shù)組,將該指針改為指向該char型數(shù)組的首地址,錯誤】cout<<name1[3]<<endl;//正確,輸出字符n/************常指針(把指針所指的地址聲明為常量,所指向地址中存放的內(nèi)容可以改變)************/ //聲明一個指針變量name2,該指針為指向字符型數(shù)據(jù)的常指針,用“chen”字符串的存儲地址初始化該指針char *const name2="abcd";cout<<name2<<endl;name2[3]='q';//正確(地址為常量,該地址內(nèi)存儲的內(nèi)容可以改變)name2="lin";//錯誤(地址不可變)name2=new char[5];//錯誤(該語句表示創(chuàng)建一個char型數(shù)組,將該數(shù)組的首地址賦值name2指針,即使指針指向char[5]數(shù)組的首地址,地址不可變,因此該語句錯誤)name2=new char('q');//錯誤(該語句表示new一個char型變量,并初始化該變量為q,將name2指針指向該char型變量的地址,錯誤)/************指向常量的指針(指針所指的地址可以改變,所指向地址中存放的內(nèi)容不能改變)************/ const char *name3="because"; char x='p'; char y[9]="dgaogd"; name3[2]='s';//錯誤【存儲內(nèi)容不可改變】 name3=&x;//正確【地址可以改變】 name3=y;//正確【地址可以改變】 name3=y[3];//錯誤【內(nèi)容不可變】 }總結
以上是生活随笔為你收集整理的常指针、指向常量的指针、指向常量的常指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows7怎么设置鼠标灵敏度 如何
- 下一篇: win10启动顺序怎么设置方法 Win1