论坛首页 综合技术版 C

重拾c之指针理解

浏览 496 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-11-22
//指针
#include "stdafx.h"
//传了一个地址过来,本来目的是对这个地址指向的内容进行改变,但是这个方法中又对*b指针变量重新指向了另外一个地址。
int testb(int *b){
	int c=456;
	b=&c; //地址变了
	printf("%d\n",*b);
	return 1;
}
//真正的传址应该这样:传一个地址到方法中,然后方法中不能改变这个地址,只能对这个地址指的内容进行改变
//因为方法调用完毕后,并不会将main中的地址改变(它是一个局部变量), 要变只能将传过来的地址存放的内容进行改变,才能反应到main中的那个地址
int testc(int *b){
	*b=777; //地址没有改变,地址存放内容改变
	printf("%d\n",*b);
	return 1;
}
int main(int argc, char* argv[])
{
	int *b;
	int c=123;
	b=&c;
	testb(b);
	printf("%d\n",*b);

	testc(b);
	printf("%d\n",*b);
	return 0;
}


传址时把地址传到方法中,对这个址改变了是不会把main方法的指针变量改变。两个地址存放各自值,结果还是老的那个地址的值。
   
论坛首页 综合技术版 C

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)