指針變量的賦值
指針變量同普通變量一樣,使用之前不僅要定義說明,而且必須賦予具體的值。未經(jīng)賦值的指針變量不能使用,否則將造成系統(tǒng)混亂,甚至死機。指針變量的賦值只能賦予地址,決不能賦予任何其它數(shù)據(jù),否則將引起錯誤。在C語言中,變量的地址是由編譯系統(tǒng)分配的,對用戶完全透明,用戶不知道變量的具體地址。C語言中提供了地址運算符&來表示變量的地址。其一般形式為 & 變量名;如&a變示變量a的地址,&b表示變量b的地址。變量本身必須預(yù)先說明。設(shè)有指向整型變量的指針變量p,如要把整型變量a 的地址賦予p可以有以下兩種方式:
(1)指針變量初始化的方法
int a;
int *p=&a;
(2)賦值語句的方法
int a;
int *p;
p=&a;
不允許把一個數(shù)賦予指針變量,故下面的賦值是錯誤的: int *p;p=1000; 被賦值的指針變量前不能再加“*”說明符,如寫為*p=&a 也是錯誤的
指針變量的運算
指針變量可以進行某些運算,但其運算的種類是有限的。 它只能進行賦值運算和部分算術(shù)運算及關(guān)系運算。
1.指針運算符
(1)取地址運算符&
取地址運算符&是單目運算符,其結(jié)合性為自右至左,其功能是取變量的地址。在scanf函數(shù)及前面介紹指針變量賦值中,我們已經(jīng)了解并使用了&運算符。
(2)取內(nèi)容運算符*
取內(nèi)容運算符*是單目運算符,其結(jié)合性為自右至左,用來表示指針變量所指的變量。在*運算符之后跟的變量必須是指針變量。需要注意的是指針運算符*和指針變量說明中的指針說明符* 不是一回事。在指針變量說明中,“*”是類型說明符,表示其后的變量是指針類型。而表達式中出現(xiàn)的“*”則是一個運算符用以表示指針變量所指的變量。
main(){
int a=5,*p=&a;
printf ("%d",*p);
}
……
表示指針變量p取得了整型變量a的地址。本語句表示輸出變量a的值。
相關(guān)推薦:
2012年軟考系統(tǒng)分析師考試60天完美復(fù)習(xí)計劃
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |