亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

講解C語言編程中指針賦值的入門實(shí)例

2020-05-23 14:11:55
字體:
供稿:網(wǎng)友
這篇文章主要介紹了講解C語言編程中指針賦值的入門實(shí)例,通過const int i與int *const pi這樣兩個例子來分析指針的賦值和地址指向,需要的朋友可以參考下
 

從const int i 說起

你知道我們聲明一個變量時象這樣int i ;這個i是可能在它處重新變賦值的。如下:

int i = 0;/* . . . */i = 20; /*這里重新賦值了*/

不過有一天我的程序可能需要這樣一個變量(暫且稱它變量),在聲明時就賦一個初始值。之后我的程序在其它任何處都不會再去重新對它賦值。那我又應(yīng)該怎么辦呢?用const 。

/* . . . */const int ic =20;/* . . . */ic = 40; /*這樣是不可以的,編譯時是無法通過,因?yàn)槲覀儾荒軐onst 修飾的ic重新賦值的。*//*這樣我們的程序就會更早更容易發(fā)現(xiàn)問題了。*//* . . . */

有了const修飾的ic 我們不稱它為變量,而稱符號常量,代表著20這個數(shù)。這就是const 的作用。ic是不能在它處重新賦新值了。

認(rèn)識了const 作用之后,另外,我們還要知道格式的寫法。有兩種:

const int ic = 20;

int const ic = 20;

它們是完全相同的。這一點(diǎn)我們是要清楚??傊?,務(wù)必要記住const 與int哪個寫前都不影響語義。有了這個概念后,我們來看這兩個家伙:

const int *pi

int const *pi

按普通的邏輯看,它們的語義有不同嗎?呵呵,只要記住一點(diǎn):int 與const 哪個放前哪個放后都是一樣的,就好比const int ic;與int const ic;一樣。也就是說,它們是相同的。

好了,我們現(xiàn)在已經(jīng)搞定一個“雙包胎”的問題。那么

int *const pi;

與前兩個語句又有什么不同呢?下面就來具體分析它們的格式與語義吧。
先來說說const int *pi是什么作用 (當(dāng)然int const *pi也是一樣的,前面我們說過,它們實(shí)際是一樣的)??聪旅娴睦樱?/p>

#include "stdio.h"main(){  /* 代碼開始 */  int i1 = 30;  int i2 = 40;  /* 現(xiàn)在 pi 變量的內(nèi)容為 i1 的內(nèi)存地址 */  const int *pi = &i1;  /* 注意這里,pi可以在任意時候重新賦值一個新內(nèi)存地址*/  /* pi 變量的內(nèi)容為 i2 的內(nèi)存地址 */  pi = &i2;  /* 想想看:這里能用*pi = 80來代替嗎?當(dāng)然不能!*/  i2 = 80;  printf("%d/n", *pi); /* 輸出是80 */  /* 代碼結(jié)束 */}

語義分析:

看出來了沒有,pi的值是可以被修改的。即它可以重新指向另一個地址的,但是,不能通過*pi來修改i2的值。這個規(guī)則符合我們前面所講的邏輯嗎?當(dāng)然符合了。

首先const 修飾的是整個*pi(注意,我寫的是*pi而不是pi)。所以*pi是常量,是不能被賦值的(雖然pi所指的i2是變量,不是常量)。

其次,pi前并沒有用const 修飾,所以pi是指針變量,能被賦值重新指向另一內(nèi)存地址的。你可能會疑問:那我又如何用const 來修飾pi呢?其實(shí),你注意到int *const pi中 const 的位置就大概可以明白了。請記住,通過格式看語義。哈哈,你可能已經(jīng)看出了規(guī)律吧?那下面的一節(jié)也就沒必要看下去了。不過我還得繼續(xù)我的戰(zhàn)斗。

再看int *const pi

確實(shí),int *const pi與前面的int const *pi會很容易給混淆的。注意:前面一句的const 是寫在pi前和*號后的,而不是寫在*pi前的。很顯然,它是修飾限定pi的。我先讓你看例子:

#include "stdio.h"main(){  /* 代碼開始 */  int i1 = 30;  int i2 = 40;  int *const pi = &i1;  /* pi = &i2; 注意這里,pi不能再這樣重新賦值了,即不能再指向另一個新地址。*/  /* 所以我已經(jīng)注釋了它。*/  i1 = 80; /* 想想看:這里能用 *pi = 80; 來代替嗎?可以,這里可以通過*pi修改i1的值。(第5行的注釋)*/  /* 請自行與前面一個例子比較。 */  printf("%d", *pi); /* 輸出是80 */  /* 代碼結(jié)束 */}

語義分析:

看了這段代碼,你明白了什么?有沒有發(fā)現(xiàn)pi值是不能重新賦值修改了。它只能永遠(yuǎn)指向初始化時的內(nèi)存地址了。相反,這次你可以通過*pi來修改i1的值了。與前一個例子對照一下吧,看以下的兩點(diǎn)分析:

pi因?yàn)橛辛薱onst 的修飾,所以只是一個指針常量:也就是說pi值是不可修改的(即pi不可以重新指向i2這個變量了)(請看第4行的注釋)。
整個*pi的前面沒有const 的修飾。也就是說,*pi是變量而不是常量,所以我們可以通過*pi來修改它所指內(nèi)存i1的值(請看第5行的注釋)。
總之一句話,這次的pi是一個指向int變量類型數(shù)據(jù)的指針常量。

我最后總結(jié)兩句:

如果const 修飾在*pi前,則不能改的是*pi(即不能類似這樣:*pi=50;賦值)而不是指pi。
如果const 是直接寫在pi前,則pi不能改(即不能類似這樣:pi=&i;賦值)。
請你務(wù)必先記住這兩點(diǎn),相信你一定不會再被它們給搞糊了?,F(xiàn)在再看這兩個聲明語句int const *pi和int *const pi時,呵呵,你會頭昏腦脹還是很輕松愜意?它們各自聲明的pi分別能修改什么,不能修改什么?再思考下這些問題。

補(bǔ)充三種情況

這里,我再補(bǔ)充以下三種情況。其實(shí)只要上面的語義搞清楚了,這三種情況也就已經(jīng)被包含了。不過作為三種具體的形式,我還是簡單提一下吧。

情況一:int *pi指針指向const int i常量的情況

#include "stdio.h"main(){  /* begin */  const int i1 = 40;  int *pi;  pi = &i1; /* 這樣可以嗎?不行,VC下是編譯錯。*/  /* const int 類型的i1的地址是不能賦值給指向int 類型地址的指針pi的。否則pi豈不是能修改i1的值了嗎!*/  pi = (int *) &i1; /* 這樣可以嗎?強(qiáng)制類型轉(zhuǎn)換可是C所支持的。*/  /* VC下編譯通過,但是仍不能通過 *pi = 80來修改i1的值。去試試吧!看看具體的怎樣。*/  /* end */}

情況二:const int *pi指針指向const int i1的情況

#include "stdio.h"main(){  /* begin */  const int i1=40;  const int * pi;  pi=&i1;/* 兩個類型相同,可以這樣賦值。很顯然,i1的值無論是通過pi還是i1都不能修改的。 */  /* end */}

情況三:用const int *const pi聲明的指針

#include "stdio.h"main(){  /* begin */  int i;  const int * const pi=&i; /*你能想象pi能夠作什么操作嗎?pi值不能改,也不能通過pi修改i的值。因?yàn)椴还苁?pi還是pi都是const的。 */  /* end */}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
老牛影视一区二区三区| 欧美极度另类性三渗透| www..com.cn蕾丝视频在线观看免费版| 超碰影院在线观看| 精品国产午夜福利在线观看| 免费人成黄页在线观看忧物| 好紧好硬好湿我太爽了| 青春草在线免费视频| 国产原创剧情av| gay网站在线| 泷泽萝拉在线播放| 亚洲男人第一网站| 亚洲在线网站| www.噜噜色.com| 亚洲福利在线观看视频| 亚洲国产精品人人爽夜夜爽| 亚洲精品国产品国语在线| av成人app永久免费| 久久久久久久久99| 成人黄色激情视频| 美女久久网站| 裸体xxxx视频在线| 精品中文视频| 日韩av在线免费| 亚洲国产果冻传媒av在线观看| 国产美女精品免费电影| 在线小视频网址| 朝桐光av一区二区三区| 日本在线视频网址| 欧美国产精品久久| 国产又色又爽又高潮免费| 777片理伦片在线观看| 日韩毛片在线视频| 啪啪免费网站| 亚洲女人小视频在线观看| 亚洲视频专区在线| 美女扒开腿让男人桶爽久久动漫| 51vv免费精品视频一区二区| 国产伦精品一区二区三区视频黑人| 色婷婷综合激情| 91精品久久久久久久久久| 一级片在线观看视频| 韩国av网站在线| 在线宅男视频| 国产精品123区| 成人免费影院| 日韩一区二区精品| 成人拍拍拍免费视频网站| 影音先锋导航| 在线观看欧美成人| 人人干在线观看| 欧美人妻精品一区二区三区| 豆国产97在线| 日产日韩在线亚洲欧美| 97人人澡人人爽人人模亚洲| 狠狠爱在线视频一区| 亚洲日本网址| 看全色黄大色黄女片18| 中文字幕第一区二区| 色视频免费版高清在线观看| 日本aⅴ亚洲精品中文乱码| 最新精品在线| 日本天堂中文字幕| 北条麻妃一区二区三区在线观看| 久热国产精品视频一区二区三区| 不卡的一区二区| 国产极品在线观看| 香蕉视频一区| 视频精品二区| 熟女熟妇伦久久影院毛片一区二区| 国产伦精一区二区三区| 99福利在线| 亚洲 日韩 国产第一| a级免费视频| 成人欧美精品一区二区| 欧美 日韩 国产一区| 亚洲精品系列| 亚洲精品九九| 男女激情视频网站| 久久久久久艹| 精品人妻无码一区二区三区换脸| 在线播放网站| 伊人久久久久久久久久久久久久| 久久婷婷综合中文字幕| 国产精品99久久精品| 天堂网avav| 亚洲成人三级在线| 久久精品亚洲一区二区| 久久久久久久久久久久久国产精品| 国产精品人人爽| 久久国产精品电影| 欧美性xxx| 我要看黄色一级片| 日韩一区二区三区中文字幕| 影音先锋日韩av| 精品国产鲁一鲁****| 亚洲一级二级在线| 日韩一卡二卡三卡四卡| 免费视频一区二区| 影音av资源站| 免费黄色在线网站| 韩国三级在线播放| 国产乱叫456| 成年人午夜剧场| 国产不卡视频在线播放| 国产午夜一区二区三区| 亚洲成色精品| www久久久久久| 免费yellow网站| 日本欧洲国产一区二区| 亚洲人午夜射精精品日韩| 国产福利图片| 亚洲xxxx2d动漫1| 亚洲综合色噜噜狠狠| 69视频免费看| 欧美午夜电影一区| 一区二区传媒有限公司| 成人啪啪免费看| 69中国xxxxxxxxx69| 亚洲一区在线播放| 精品视频在线观看免费观看| 超碰在线国产| 豆国产96在线|亚洲| 一区二区三区在线观看av| 亚洲 自拍 另类小说综合图区| 在线免费观看的av网站| 国模私拍在线观看| 日韩av一二三四区| 2021久久精品国产99国产精品| 亚洲中文字幕一区二区| 中文字幕中文字幕一区| 亚洲第一成人在线视频| 欧美精品一区二区三区三州| 在线视频一区二区免费| 日韩黄色片在线观看| 亚洲高清在线观看视频| 欧美一级大片在线视频| 999国产精品视频| 国产精品视频久| 亚洲第一综合网站| 巨乳女教师的诱惑| 最近中文字幕在线免费观看| 91看片淫黄大片91| 欧美高清电影在线| 成人网在线播放| 亚洲综合第一页| 国产一区二区三区四区大秀| 国产女主播在线播放| 国产精品自拍网| 精品久久久久久国产| 青青九九免费视频在线| 天天操天天摸天天舔| 51精产品一区一区三区| 调教+趴+乳夹+国产+精品| 色噜噜狠狠色综合网图区| 日韩av中文字幕在线| 日韩国产高清视频在线| 久久久久国产精品| 污视频在线免费观看网站| 亚洲天堂国产精品| 亚洲 欧美 日韩在线| 亚洲人一区二区| 中文字幕免费观看一区| 精品入口麻豆传煤| 日韩欧美123| 成人免费精品视频| 在线观看亚洲一区二区| 九九精品视频免费| 精品久久人人做人人爰| 日韩美女一区二区三区在线观看| 久青草国产97香蕉在线视频| 欧美日韩夫妻久久| 亚洲免费资源在线播放| 中文字幕在线中文字幕日亚韩一区| 性感美女极品91精品| 国产精品免费大片| 91免费看片在线观看| 男女18免费网站视频| 亚洲人成网在线播放| 尤物yw午夜国产精品视频明星| 色综合久久中文字幕综合网小说| 欧美日本韩国一区二区| 日韩精品中文字幕在线观看| 色视频在线观看福利| 色婷婷亚洲精品| 狠狠干夜夜操| 黄色的视频在线观看免费| 你懂得网站在线| 欧美久久久久久久久久| 91在线免费播放| 俄罗斯一级**毛片在线播放| 欧美一区二区黄片| 国产乱在线观看视频| 色综合视频一区二区三区44| 国产亚洲在线播放| 久久这里只有精品1| 美女视频黄免费的亚洲男人天堂| 一本色道久久综合亚洲精品婷婷| 91精品久久久久久久蜜月| 欧美一三区三区四区免费在线看| 国产在线观看第一页| 亚洲爆乳无码一区二区三区| 综合国产精品久久久| 丰满岳妇乱一区二区三区| 色综合久久五月天| 久久久人成影片一区二区三区观看| 91超碰这里只有精品国产| 日本免费黄色网| 亚洲香蕉av在线一区二区三区| 亚州成人av在线| αv一区二区三区| 秋霞午夜鲁丝一区二区| 国语自产精品视频在免费| av网站导航在线观看免费| 精品国产sm最大网站免费看| 日韩av影视综合网| 国产av麻豆mag剧集| 日本啊v在线| 深夜成人在线观看| 永久免费在线| 国产精品免费观看在线| 日韩精品一区二区免费| 国内自拍亚洲| 成人久久18免费网站麻豆| 亚洲国产成人av| 91www成人久久| 天堂网视频在线| 成人福利影视| 欧美午夜在线| 亚洲最大成人免费视频| 国产尤物在线视频| 国产99久久精品| 91精品国产综合久久久久久豆腐| xxxxxx在线观看| 国产精欧美一区二区三区蓝颜男同| 久久久免费人体| 亚洲电影一二三区| 国产精品国精产品一二| 超碰91人人草人人干| 国内自拍第二页| 久久综合一区| 精品国产污网站| 蜜臀91精品国产高清在线观看| 国产亚洲污的网站| 欧美videossex极品| 亚洲精品1区2区3区| 精品99一区二区三区| 午夜精品久久久久久久久久| 欧美88av| 精品爆乳一区二区三区无码av| 伊人久久大香线蕉精品组织观看| 欧美艾v福利视频在线观看| 在线亚洲精品自拍| 欧美日韩国产综合视频| 亚洲人成网7777777国产| 51成人精品网站| 日本中文在线一区| 很黄的网站在线观看| 国产九九在线视频| 日日干天夜夜| 日韩视频在线一区二区三区| 久久亚洲国产成人精品无码区| 精品国产va久久久久久久| 欧美丝袜在线观看| 污视频网站入口| 日韩一区二区a片免费观看| 国产精品亚洲一区| 日韩专区中文字幕一区二区| av网站免费在线播放| 亚洲一区二区三区四区电影| 欧美日本啪啪无遮挡网站| 亚洲av无码片一区二区三区| 国产亚洲成aⅴ人片在线观看| 国产91亚洲精品一区二区三区| 精品二区三区线观看| 久久久久亚洲av无码专区喷水| 一区二区三区国产精品| 日韩精品a在线观看91| 国产8mav视频| 国产一区免费在线| 黄色一级片免费在线观看| 亚洲视频一区二区免费在线观看| 亚洲第一色网站| 欧美一区二区在线播放| 美女黄色网址| 亚洲午夜精品一区二区国产| 欧美欧美黄在线二区| 高清日韩一区| 亚洲自拍第二页| 成人午夜电影在线观看| 午夜视频在线免费| 欧美黄在线观看| 欧美18—19性高清hd4k| 日韩av不卡一区二区| 亚洲全部视频| 亚洲一级黄色大片| 日本动漫理论片在线观看网站| 成年人免费视频播放| 欧美色图在线视频| 日本性生活网站| 日韩欧美二区三区| 久久久精品网| 欧美体内she精高潮| 图片区小说区区亚洲五月| 翔田千里一区二在线观看| 日韩成人久久久| 7777精品伊久久久大香线蕉语言| 裸体av在线| 亚洲成人手机在线观看| 亚洲成年人电影| 中文字幕第8页| 亚洲人成毛片在线播放| 136国产福利精品导航网址| 97精品国产97久久久久久春色| 国产精品1区2区3区4区| 亚洲色图27p| 怡红院成永久免费人全部视频| 日韩成人精品视频在线观看| 国产精品超碰97尤物18| 亚洲欧美强伦一区二区| 黑人性受xxxx黑人xyx性爽| 性猛交富婆╳xxx乱大交一| 亚洲自拍另类欧美丝袜| 午夜精品一区二区三| 午夜剧场成人观在线视频免费观看| 欧美在线一卡| 成人动漫视频在线| 劲爆欧美第一页|