关于指针的实例
main(){int *p,*h,*k=0;
int i=1,j=2;
p=&i;
h=&j;
k=p;
p=h;
h=k;
printf("%d %d",*p,*h);
}
注意*k=0(在C++中也只有0初始化给指针变量,其他的整数都不行,因为指针存放的是地址而不是整数,指针变量初始化为0是C++系统唯一允许的)。
该程序实现的是通过指针来实现值的互换:
希望这个例题能够帮助那些对理解指针有困难朋友,,
下面也有一些关于指针的知识:
1..指针变量遵循先定义后使用的规则。定义一个指针变量格式:
<类型名> *<指针变量名1>[,*<指针变量名2>,...];
式中的“*”是一个定义指针变量的说明符,它不是指定变量名的一部分。每个指针变量前面都需要这样的“*”来标明。例如:
int *pInt1, *pInt2; // pInt1,pInt2是指向整型变量的指针
float *pFloat; // pFloat是一个指向浮点型变量的指针
char *pChar; // pChar是一个指向字符型变量的指针, 它通常用来处理字符串
指针后,系统会给指针分配一个内存单元,但分配的空间大小是相同的,因为指针变量的数值是某个变量的地址,而地址值的长度是一样的
定义一个C++中有两个专门用于指针的运算符:&(取地址运算符)、*(取值运算符)
2..运算符“&”只能对变量操作,作用是取该变量的地址。运算符“*”用于指针类型的变量操作,作用是取该指针所指内存单元中存储的内容。例如:
int a = 6; // 整型变量,初值为6
int *p = &a; // 指向整型变量的指针,其值等于a的地址
int b = *p; // 将指针所指的地址中的内容赋值给b,值为3。
说明:注意区分int *p和 *p所代表的意思是不同的。
[ 本帖最后由 RHL 于 2010-3-19 15:21 编辑 ]