在c語言中對變量的訪問有兩種,第一種是直接訪問,第二種是間接訪問。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),紅河哈尼企業(yè)網(wǎng)站建設(shè),紅河哈尼品牌網(wǎng)站建設(shè),網(wǎng)站定制,紅河哈尼網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,紅河哈尼網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。我們先來看直接訪問:
#include
int main()
{
int a = 10;
printf("%d\n", a);
a=20;
printf("%d\n",a);
system("pause");
return 0;
}
運(yùn)行結(jié)果如下
這種對變量直接賦值的過程稱為直接訪問。
第二種就是間接訪問,即使用指針進(jìn)行訪問
#includeint main()
{
int a = 10;
int* p = &a;
printf("%d\n", a);
*p = 20;
printf("%d\n", a);
system("pause");
return 0;
}
運(yùn)行結(jié)果如圖
我們發(fā)現(xiàn)a的值也被修改了。
正文:為了將不同功能的代碼封裝成一個個函數(shù),并且想對主函數(shù)里一些數(shù)據(jù)進(jìn)行修改,我們就要使用所謂的指針來進(jìn)行相關(guān)的操作。
1.指針到底是什么?
我們定義一個變量 int a=10; 那么&a就是一個指針。
2.怎么做?
我們需要定義一個指針變量用來保存指針,例如:int a=10; int* p=&a;
(int*)表示這是這個指針的類型是整型,定義指針變量的類型必須和變量類型一致。
3.為什么指針可以?
C語言里,變量存放在內(nèi)存中,而內(nèi)存其實就是一組有序字節(jié),每個字節(jié)有唯一的內(nèi)存地址。CPU 通過內(nèi)存尋址對存儲在內(nèi)存中的某個指定數(shù)據(jù)對象的地址進(jìn)行定位。這里,數(shù)據(jù)對象是指存儲在內(nèi)存中的一個指定數(shù)據(jù)類型的數(shù)值或字符串,它們都有一個自己的地址,而指針便是保存這個地址的。
4.原理圖:
p指針變量保存a的地址,此時*p=10;可通過解引用(*p)實現(xiàn)對a值的操作;?
5.實踐(交換兩數(shù)的值)
#include#include#includevoid swap(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 10;
int b = 20;
swap( a, b);
printf("%d %d\n", a,b);
system("pause");
return 0;
}
運(yùn)行結(jié)果 :
使用指針后:
#includevoid swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int a = 10;
int b = 20;
swap(&a, &b);
printf("%d %d\n", a,b);
system("pause");
return 0;
}
運(yùn)行結(jié)果:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧