六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 57|回复: 0

重拾c之指针理解

[复制链接]

升级  20.67%

21

主题

21

主题

21

主题

秀才

Rank: 2

积分
81
 楼主| 发表于 2013-1-27 05:43:14 | 显示全部楼层 |阅读模式
//指针#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方法的指针变量改变。两个地址存放各自值,结果还是老的那个地址的值。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表