1、指針變量的賦值,分為定義時(shí)賦值(初始化)和單獨(dú)賦值,如:
創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)上千余家。
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 );
}
一般變量作為形參,是不能改變實(shí)參值的哦,要返回?cái)?shù)據(jù)就用return;
指針指向真實(shí)的地址,不重新分配內(nèi)存,所以調(diào)用函數(shù)后,如果函數(shù)里改變了指針指向的值,那這個(gè)數(shù)就真的變了。
調(diào)用就是用函數(shù)名,還要傳送相應(yīng)的調(diào)用參數(shù)。
#include stdio.h
void exe(int** p, int** q);
void main()
{
int *p, *q, a, b;
scanf("%d %d", a, b);
p = a;
q = b;
if (a b)
{
? exe(p, q);
}
printf("a=%d,b=%d\n", a, b);
printf("max=%d,min=%d\n", *p, *q);
}
void exe(int** p, int** q)
{
int* t;
t = *p;
*p = *q;
*q = t;
}