最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【C語言】指針進(jìn)階第一站:字符指針 & typedef關(guān)鍵字!

2022-08-11 15:01 作者:C語言編程__Plus  | 我要投稿

簡單回顧一下指針的概念

內(nèi)存會劃分以字節(jié)為單位的空間,每一個(gè)字節(jié)都有一個(gè)編號(地址/指針)

指針變量可以存放這個(gè)地址/指針

注:我們?nèi)粘Kf的指針,一般是指針變量


下面讓我們坐上指針進(jìn)階的直通車,來到第一站!字符指針

字符指針

代碼示例:

字符變量ch里面存放了字符w

字符指針p里面存放了ch的地址

指針變量pa里面存放了abcdef字符串的地址,我們并沒有對這個(gè)字符串進(jìn)行初始化。而是直接把它放進(jìn)了指針變量pa里面。

和前兩行的字符w不同,abcdef是存儲在內(nèi)存中的只讀數(shù)據(jù)區(qū),無法修改,即便通過指針也無法修改。

為了避免理解出錯(cuò),我們一般會加上const修飾

const放在*的左邊

表示const修飾的指針指向的內(nèi)容,表示指針指向的內(nèi)容不能通過指針來改變

但是指針變量本身是可以改變的

const放在*的右邊

表示const修飾的是指針變量本身,指針變量的內(nèi)容不能被修改

但是*pa指針指向的內(nèi)容是可以通過指針來修改的


代碼示例:

它的結(jié)果如下:


在例子1里面我們提到過,str1和str2這種情況都指向一個(gè)常量字符串

既然字符串a(chǎn)bcdef無法被改變,編譯器也沒有必要?jiǎng)?chuàng)建兩個(gè)獨(dú)立的內(nèi)存空間來存放兩個(gè)相同的字符串

所以str1和str2的地址是完全一樣的

而arr1和arr2是完全不同的數(shù)組,它們的首元素地址不一樣,打印的結(jié)果是不相等


typedef關(guān)鍵字

如何使用:

在MSDN中,我們可以查找到typedef的定義


簡單地說,typedef的作用就是把一個(gè)已有的類型名換一個(gè)新的名字

這句代碼的意思是:將int*命名為pint

pint在使用的時(shí)候和int*完全一致

我們?nèi)匀豢梢允褂胕nt*


在結(jié)構(gòu)體里面,我們可以用typedef來縮短原有結(jié)構(gòu)體定義的語句

如:將struct Stu命名為Stu

typedef和#define的區(qū)別

我們同樣可以使用#define語句,進(jìn)行這項(xiàng)操作

定義語句PINT為int*


指針連續(xù)定義

先來了解一下如何正確連續(xù)定義兩個(gè)指針

因?yàn)檫@兩個(gè)的情況非常容易搞混,所以我們不建議連續(xù)定義指針

? ? ? ? ·typedef會產(chǎn)生一個(gè)新的變量類型

? ? ? ? ·#define只是在對應(yīng)位置進(jìn)行替換

因?yàn)閠ypedef產(chǎn)生了一個(gè)新的類型,pint為int*,但與int*也有不同

而我們直接用int*進(jìn)行連續(xù)定義指針變量是錯(cuò)誤的

你學(xué)會了嗎?我反正是學(xué)廢了。

為了幫助大家,輕松,高效學(xué)習(xí)C語言/C++,給大家分享我收集的資源,從最零基礎(chǔ)開始的,幫助大家在學(xué)習(xí)C語言的道路上披荊斬棘!

微信公眾號:C語言編程學(xué)習(xí)基地

C語言零基礎(chǔ)入門教程(83集全)

整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!大家也要把握住大學(xué)的時(shí)光,抓住成長的每一次機(jī)會哦~

編程學(xué)習(xí)書籍分享:

粉絲編程交流:



【C語言】指針進(jìn)階第一站:字符指針 & typedef關(guān)鍵字!的評論 (共 條)

分享到微博請遵守國家法律
中卫市| 安龙县| 广灵县| 都兰县| 定边县| 张北县| 司法| 黑水县| 龙门县| 贵溪市| 高安市| 甘南县| 高雄县| 通海县| 浠水县| 木兰县| 萨迦县| 武宁县| 迁西县| 宝兴县| 绍兴县| 蓝田县| 浦城县| 荃湾区| 周口市| 鄂托克前旗| 西城区| 兴仁县| 修文县| 承德县| 涿州市| 益阳市| 柞水县| 绥化市| 兴山县| 丰宁| 二连浩特市| 龙里县| 宝丰县| 平顺县| 东乡|