注册 登录
编程论坛 C++教室

关于指针的实例

RHL 发布于 2010-03-19 11:25, 722 次点击
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 编辑 ]
4 回复
#2
chsteven2010-03-19 12:06
太混乱了。楼主不妨在 指针操作前后分别执行下 printf("i=%d, j=%d", i, j);
看看有没有互换
#3
wei00002010-03-19 18:28
请问你这是小知识还是提问啊
#4
RHL2010-03-19 19:23
回复 3楼 wei0000
你好。。。有问题吗??
#5
apull2010-03-20 00:05
UP。。。。
1