a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

指向變量的常指針與指向常變量的指針詳細解析

2020-01-26 15:44:46
字體:
來源:轉載
供稿:網友

常(量)指針
常指針就是我們說的指向常量的指針,顧名思義,它是用來指向常量的。

用常指針指向常變量
實際上,C++規定只能用指向常變量的指針指向常變量,普通指針指向它就會報錯,原因也很容易理解,我們用普通指針指向常變量之后,有可能就會進行改變常變量數值的操作,這樣做是不被允許的。

常指針的定義方法:

復制代碼 代碼如下:

const 類型名  * 常指針名;

下面是它的一個簡單的使用示例:
程序1.1.1
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 const int i=5;//定義一個int型常變量
 const int *p;//定義一個int型常指針
 p=&i;//用常指針指向常變量
 cout<<*p<<endl;
 return 0;
}

運行結果:


如果我們使用普通指針變量來指向常變量:
程序1.1.2
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 const int i=5;//定義一個常變量
 int *p;//定義了一個int型指針
 p=&i;//使用一般的指針指向常變量
 cout<<*p<<endl;
 return 0;
}

就會報錯:

用常指針指向一般變量(非const型變量)
用常指針也是可以指向一般變量的,不過不可以通過常指針來更改一般變量的值,但是可以通過一般變量的變量名來修改變量的值。
下面看一個示例:

程序1.2.1

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 int i=5;//定義一個一般變量
 const int *p;//定義了一個常指針
 p=&i;//使用常指針指向一般變量
 cout<<*p<<endl;
 i=10;//通過一般變量的變量名來修改值
 cout<<*p<<endl;
 return 0;
}


運行結果:

如果我們使用常指針來修改一般變量的值:

復制代碼 代碼如下:

*p=10;

就會報錯:

小結:常指針可以指向常變量和一般變量,但是都不能通過指針改變它指向的變量的值。

指針常量
指針常量是指的指針本身就是一個常變量,一經賦初值就不可以被更改。
上面已經說過,只有常指針才可以指向常變量,所以指針常量只可以指向一般變量,而且一旦賦給了初值,就不可以再更改。

定義方法:

復制代碼 代碼如下:

類型名 * const 指針常量名=變量地址;

因為指針是常變量所以它在定義的時候就應該賦初值。

一個程序示例:

程序2.1

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 int i=5;//定義一個一般變量
 int * const p=&i;//定義了一個指針常量
 cout<<*p<<endl;
 *p=30;//通過指針來改變指向的變量的值
 cout<<*p<<endl;
 return 0;
}

運行結果:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 99国产视频 | 久久国产一区二区三区 | 欧美精品免费在线观看 | av一区二区三区 | 国内在线一区 | 天堂资源最新在线 | 成人av一区二区三区 | 久久亚洲精品国产精品紫薇 | 日韩艹逼视频 | 久久另类 | 久久久www| 日韩久久一区二区 | 亚洲伦理在线观看 | 国产精品一区二区福利视频 | 亚欧色视频 | 国产九九精品 | 国产精品视频区 | 久久久久国产精品午夜一区 | 国产欧美日韩 | 亚洲a在线观看 | 国产成人精品一区二三区四区五区 | 国产精品久久久久久久久久免费看 | 成人在线不卡视频 | 中文字幕在线免费视频 | 中文字幕一区二区在线观看 | 中文在线一区二区 | 日韩在线观看成人 | 久久99国产精品久久99大师 | 久久久国产视频 | 亚洲欧美一区二区精品中文字幕 | 日韩欧美国产一区二区 | 久久精品国产一区 | 999精品免费 | 国产在线国偷精品产拍免费yy | 黄影院| 一级在线观看 | 日韩高清在线播放 | 成人作爱视频 | 日韩福利在线观看 | 亚洲精品乱码久久久久久按摩观 | 男人天堂99 |