黑马程序员技术交流社区

标题: 菜鸟的郁闷,大神快来啊!!! [打印本页]

作者: 杨贺阳    时间: 2014-11-28 13:12
标题: 菜鸟的郁闷,大神快来啊!!!
int a = 3;   int b = 4;   int c = 0;   
int x[4] = {a,b};
c=a;
a=b;
b=c;
printf("出现%d%d%d%d\n",a,b,x[0],x[1]);

问题来了,为什么a和b的值已经互换了,x[0]的值还是a原来的3!!??
大神!!速来解答!!!最好能帮我分析下内存。
作者: onefiter    时间: 2014-11-28 13:14
本帖最后由 onefiter 于 2014-11-28 13:25 编辑

看一下李明杰老师的快速入门20.指针与一维数组这一视频
作者: onefiter    时间: 2014-11-28 13:21
程序运行,从上到下,你只是换a ,b的值,并没有对一维数组操作
作者: onefiter    时间: 2014-11-28 13:29
程序第二行对数组进行定义和初始化,此时x[0]=3;x[1]=4;x[2]=0;x[3]=0;之后的程序并没有对数组操作啊
作者: zhao190109    时间: 2014-11-28 14:40
数组值没发生变化,只是改变了整形
作者: 龙@程序员    时间: 2014-11-28 15:30
数组和变量A,B分别占用不同的内存区域,所以,不能全改
作者: 松果    时间: 2014-11-28 21:10
交换的知识a跟b的值,x[0]和x[1]的值只是在定义的时候赋了值,之后就没修改过




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2