指針變量的運算
(1)賦值運算
指針變量的賦值運算有以下幾種形式:
①指針變量初始化賦值,前面已作介紹。
②把一個變量的地址賦予指向相同數(shù)據(jù)類型的指針變量。例如:
int a,*pa;
pa=&a; /*把整型變量 a的地址賦予整型指針變量 pa*/
③把一個指針變量的值賦予指向相同類型變量的另一個指針變量。如:
int a,*pa=&a,*pb;
pb=pa; /*把 a的地址賦予指針變量 pb*/
由于 pa,pb均為指向整型變量的指針變量,因此可以相互賦值。
④把數(shù)組的首地址賦予指向數(shù)組的指針變量。
例如: int a[5],*pa;
pa=a; (數(shù)組名表示數(shù)組的首地址,故可賦予指向數(shù)組的指針變量pa)
也可寫為:
pa=&a[0]; /*數(shù)組第一個元素的地址也是整個數(shù)組的首地址,
也可賦予 pa*/
當然也可采取初始化賦值的方法:
int a[5],*pa=a;
⑤把字符串的首地址賦予指向字符類型的指針變量。例如: char *pc;pc="c language";或用初始化賦值的方法寫為:
char *pc="C Language"; 這里應(yīng)說明的是并不是把整個字符串裝入指針變量, 而是把存放該字符串的字符數(shù)組的首
地址裝入指針變量。 在后面還將詳細介紹。
⑥把函數(shù)的入口地址賦予指向函數(shù)的指針變量。例如: int (*pf)();pf=f; /*f為函數(shù)名*/
(2)加減算術(shù)運算
對于指向數(shù)組的指針變量,可以加上或減去一個整數(shù)n。設(shè) pa是指向數(shù)組 a的指針變量,則
pa+n,pa-n,pa++,++pa,pa--,--pa 運算都是合法的。指針變量加或減一個整數(shù) n的意義是把指針指向的當前位置(指向
某數(shù)組元素)向前或向后移動 n個位置。應(yīng)該注意,數(shù)組指針變量向前或向后移動一個位置和地址加1或減1 在概念
上是不同的。因為數(shù)組可以有不同的類型,各種類型的數(shù)組元素所占的字節(jié)長度是不同的。如指針變量加1,即向后
移動1 個位置表示指針變量指向下一個數(shù)據(jù)元素的首地址。而不是在原地址基礎(chǔ)上加1。
例如:
int a[5],*pa;
pa=a; /*pa指向數(shù)組a,也是指向 a[0]*/
pa=pa+2; /*pa指向a[2],即pa的值為&pa[2]*/ 指針變量的加減運算只能對數(shù)組指針變量進行,對指向其它類型變
量的指針變量作加減運算是毫無意義的。(3)兩個指針變量之間的運算只有指向同一數(shù)組的兩個指針變量之間才能進行
運算, 否則運算毫無意義。
2015年全國職稱計算機考試教材(2007模 .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 | |
全國職稱計算機考試速成過關(guān)系列套裝:W .. 定價:¥133 優(yōu)惠價:¥133.0 更多書籍 |