真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語言指針怎么使用

這篇文章主要介紹“C語言指針怎么使用”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“C語言指針怎么使用”文章能幫助大家解決問題。

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、太谷網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為太谷等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

一、指針的大小

二、野指針和空指針

#include int main(void){int a = 6;int* p;p = a;//把a的值賦給指針變量p,p為野指針,這樣做不會出現(xiàn)啥問題,但是沒什么意義 p = 0x456;//為指針變量p賦值,p為野指針,這樣做不會出現(xiàn)啥問題,但是沒什么意義 *p = 100;//操作野指針指向未知區(qū)域,內(nèi)存會出問題,報錯。return 0;}

但是,野指針和有效指針變量保存的都是數(shù)值,為了標志此指針變量沒有指向任何變量(空閑可用),C語言中,可以把NULL賦值給此指針,這樣就標志此指針為空指針,沒有任何指針。

int* p = NULL;

說明:野指針指向一個未知的空間,程序中允許存在野指針。操作系統(tǒng)將0到255作為系統(tǒng)占用不允許訪問操作,操作野指針對應(yīng)的內(nèi)存空間可能會報錯。

#include int main(void){//空指針是指內(nèi)存地址編號為0的空間int* p = NULL;//操作空指針對應(yīng)的空間一定會報錯 *p = 6; //這樣寫會報錯printf("%d\n", *p); return 0; }

三、萬能指針void*

void*指針可以指向任意變量的內(nèi)存空間:

#include int main(void){//void* p = NULL;void* p;int a = 6;p = (void*)&a; //指向變量時最好轉(zhuǎn)換為void* //使用指針變量指向內(nèi)存時,轉(zhuǎn)換為int**((int*)p) = 10; //把a的值修改為10             //在通過萬能指針修改變量的值時,需要找到變量對應(yīng)的指針類型。//printf("%p\n", p);printf("a = %d\n", a); return 0;}

程序執(zhí)行結(jié)果:

萬能指針可以接收任意類型變量的內(nèi)存地址。

void* p = &a;

四、const修飾的指針變量

(1)const修飾指針類型

const int* p = &a;

這種情況:可以修改指針變量的值,不可以修改指針指向的內(nèi)存空間的值。

#include int main(void){int a = 3;int b = 6;const int* p = &a; //p1的初始值是a的地址p = &b; //把b的地址賦給p1,即改變p1的值(這是可行的)*p = 15; //報錯,提示表達式必須是可修改的左值,因為不可以修改指針指向的內(nèi)存空間的值(a的值)。printf("%p\n", p); //打印出的p1的值是b的地址,即可以修改指針變量的值。 return 0;}

(2)const修飾指針變量

int* const p = &a;

這種情況:可以修改指針指向的內(nèi)存空間的值,不可以修改指針變量的值。

#include int main(void){int a = 3;int b = 6; int* const p = &a;*p = 100;p = &b;//報錯,提示:表達式必須是可修改的左值。即不可以修改指針變量的值 printf("%d\n", a);//打印出的a的值為100,即可以修改指針指向的內(nèi)存空間的值 return 0;}

(3)const修飾指針變量和指針類型

const int* const p = &a;

我們知道在這種情況下,既不可以修改指針指向的內(nèi)存空間的值,也不可以修改指針變量的值。但是我們?nèi)阅芡ㄟ^二級指針來修改指針指向的內(nèi)存空間的值和指針變量的值。

#include int main(void){int a = 2;int b = 6; const int* const p = &a;int** pp = &p; **pp = 100;  //把100賦值給a,即通過二級指針可以修改a的值,const不起作用了printf("%d\n", *p); //打印出的a的值為100 *pp = &b;  //把b的地址賦值給p,通過二級指針可以改變p的值,const不起作用了printf("%d\n", *p);//打印出的是b的值,即6 return 0;}

這也說明了const存在一定的不安全性。

五、指針的加法運算

(1)指針計算不是簡單的整數(shù)相加。

(2)如果是一個int*,+1的結(jié)果是增加一個int的大小。

(3)如果是一個char*,+1的結(jié)果是增加一個char的大小。

指針的減法運算是類似的,很容易理解。

關(guān)于“C語言指針怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。


名稱欄目:C語言指針怎么使用
當(dāng)前地址:http://weahome.cn/article/jscdod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部