指针

一.指针的含义

int *p1;   //p1是一个指针变量,它的值是某个整型变量的地址

float *p2; //p2是指向浮点变量的指针变量

//一个指针变量只能指向同类型的变量,P2 只能指向浮点变量

二.赋值

把整型变量a 的地址赋予p

int a;

int *p=&a;

int a;

int *p;

p=&a;

三.指针运算符

①取地址运算符&

②取内容运算符*

在*运算符之后跟的变量必须是指针变量。

注意指针运算符*和指针变量说明中的指针说明符*的不同:

在指针变量说明中,“*”是类型说明符,表示其后的变量是指针类型。而表达式中出现的“*”则是一个运算符用以表示指针变量所指的变量。

四.指针变量的运算

①把一个指针变量的值赋予指向相同类型变量的另一个指针变量

    int a = 5;
    int *pa = &a,*pb;

    pb = pa;   //pa,pb为存放a数值的地址,*pa = 5,*pa = 5,a = 5

    a = 6;       //pa,pb的值不变,*pa = 6,*pa = 6,a = 6
    *pa = 7;   //pa,pb的值不变,*pa = 7,*pb = 7,a = 7

②把数组的首地址赋予指向数组的指针变量

int a[5],*pa;pa=a;

(数组名表示数组的首地址,故可赋予指向数组的指针变量pa)

也可写为:pa=&a[0];

/*数组第一个元素的地址也是整个数组的首地址,

也可赋予pa*/
当然也可采取初始化赋值的方法:

int a[5],*pa=a;

③把字符串的首地址赋予指向字符类型的指针变量

char *pc;pc="abcde";

或char *pc="abcde";

④加减运算

int a[5],*pa;
pa=a; //pa指向数组a,也是指向a[0]

pa=pa+2; //pa指向a[2],即pa的值为&pa[2]

//指针变量的加减运算只能对数组指针变量进行, 对指向其它类型变量的指针变量作加减运算是毫无意义的。


阅读更多

没有更多推荐了,返回首页