1、指針變量的賦值,分為定義時(shí)賦值(初始化)和單獨(dú)賦值,如:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、鞏義網(wǎng)站維護(hù)、網(wǎng)站推廣。
int x ;
int * px=x ; //定義時(shí)賦值,也稱初始化,注意這里的*是跟隨int的,即變量px是int *類型變量! 實(shí)際上的賦值語句是px=x ;
int * py ;
py=x ; //單獨(dú)賦值,將py指向x
*py=10 ; //這里的*,是引用指針中的數(shù)據(jù)操作符,*跟隨的變量必須是指針類型變量,否則會(huì)出錯(cuò)! *py就是x,這里相當(dāng)于x=10;
2、指針變量作為函數(shù)的參數(shù)時(shí),子函數(shù)可以通過指針引用實(shí)參地址中的數(shù)據(jù),達(dá)到修改實(shí)參地址中的數(shù)據(jù)。如:
#include stdio.h
void func( int a, int b, int *pmax )
{
if ( ab ) *pmax=a;
else *pmax=b ;
}
void main()
{
int a=2,b=3,max=0;
func(a,b,max ); //這里將變量max的地址傳遞到子函數(shù),子函數(shù)中通過該地址,可以修改max的值,達(dá)到子函數(shù)結(jié)束后,max能帶回運(yùn)算結(jié)果的效果。
printf("max=%d\n", max );
}
1、變量的指針就是變量的地址。存放變量地址的變量是指針變量。即在C語言中,允許用一個(gè)變量來存放指針,這種變量稱為指針變量。因此,一個(gè)指針變量的值就是某個(gè)變量的地址或稱為某變量的指針。
2、為了表示指針變量和它所指向的變量之間的關(guān)系,在程序中用“*”符號(hào)表示“指向”。
3、定義指針變量.對(duì)指針變量的定義包括三個(gè)內(nèi)容:指針類型說明,即定義變量為一個(gè)指針變量和指針變量名的基本形式類型說明符*變量名。
4、int i,j;表示i,j是一個(gè)指針變量,它的值是某個(gè)整型變量的地址。或者說i,j指向一個(gè)整型變量。至于i、j究竟指向哪一個(gè)整型變量,應(yīng)由向i,j賦予的地址來決定。
5、int *s是指向整型變量的指針變量,float *d是指向浮點(diǎn)變量的指針變量,char *g;是指向字符變量的指針變量。應(yīng)該注意的是,一個(gè)指針變量只能指向同類型的變量,如s只能指向浮點(diǎn)變量,不能時(shí)而指向一個(gè)浮點(diǎn)變量,時(shí)而又指向一個(gè)字符變量。
6、指針變量的引用,指針變量同普通變量一樣,使用之前不僅要定義說明,而且必須賦予具體的值。未經(jīng)賦值的指針變量不能使用,否則將造成系統(tǒng)混亂,甚至死機(jī)。
要改p–a的值,和在這個(gè)函數(shù)里面是一樣的
直接
p–a=要賦值的值
這樣就可以了
唯一需要注意的就是要賦值的是結(jié)構(gòu)體指針還是結(jié)構(gòu)體變量,如果不是指針那就要改成點(diǎn)了
p.a這樣
你這樣想說明你還沒有真正理解內(nèi)存和指針。int
a;表示編譯器隨機(jī)取出一個(gè)空閑的地址分配給a,不妨設(shè)為00000000,長度為sizeof(int),不同編譯器可能不同。int
*p;也表示隨機(jī)取出一個(gè)空閑的地址分配給p,不妨設(shè)為000000f0,長度一般為4個(gè)字節(jié),則這四個(gè)字節(jié)現(xiàn)在存儲(chǔ)的內(nèi)容是不確定的,假設(shè)為00000ff0,那么*p表示地址00000ff0上的值。*p=a則把地址00000ff0的值變?yōu)閍的值,顯然如果該地址目前正在被某個(gè)進(jìn)程使用,就有可能破壞該進(jìn)程,因此這種方法是十分危險(xiǎn)的。給指針賦值一般有兩種方法,一種是將已經(jīng)存在的變量的地址傳遞給指針,格式為:p=a;另一種是首先為指針申請(qǐng)指向的合法內(nèi)存,C語言中用函數(shù)malloc(),然后給已申請(qǐng)的地址賦值,如*p=6。
指針就是指向內(nèi)存的某個(gè)地址的一個(gè)變量。
結(jié)構(gòu)體指針就是這個(gè)指針變量的值必須指向存放該結(jié)構(gòu)體的內(nèi)存位置。
當(dāng)這個(gè)指針沒有任何指向時(shí),可以賦值為null值,但是改指針不可使用,程序中應(yīng)該做判斷。下面是一些賦值演示。
struct student{
int id;
int score;
} aaa;
struct student *p = null;//結(jié)構(gòu)體指針p初始化賦值為null
struct student *p2=aaa;//p2指向aaa
struct student *p3=(struct student *)malloc(sizeof(struct student));//內(nèi)存中申請(qǐng)一個(gè)結(jié)構(gòu)體空間,并將地址強(qiáng)制轉(zhuǎn)換為結(jié)構(gòu)體指針變量賦值給p3
網(wǎng)頁題目:C語言給指針函數(shù)賦值 c++函數(shù)指針賦值
文章轉(zhuǎn)載:http://jinyejixie.com/article30/dosdeso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、電子商務(wù)、微信小程序、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)