|
语文不及格
新手上路
帖子:16 |
1#
大中
小发表于 2008-9-24 23:39 只看该作者
菜鸟级别的问题不会占用前辈们太多的时间,你随手一点,我受益非浅!(9)下列以下程序执行后的输出结果是 。
#include <stdio.h> #include <math.h> void func(int *a, int b[ ]) { b[0]=*a+6; } void main() { int a, b[5]; a=0; b[0]=3; func(&a, b); printf("%d \n", b[0]); } (A) 6 (B) 7 (C) 8 (D) 9 (E)3 问题 1:实际运行得的结果是6,不过我思考的结果是3。 麻烦解释一下相关知识概念,原因结果。 我是这样想的!C语言都是传值调用的,不能改变实参. 虽然在func()里b[0]=6,可打印的应该是main里附的值的b[0]=3。 6楼的哥们点醒了我一点,这么说b[0]效果相当于指针一样指向的是地址? 我一直以为数组b[0]=3装入原素后的效果,相当于一个普通变量 f=3 一样! 请原谅我不是没有好好看书,我知道书上一定有讲解,但是 都是零零碎碎的东点西点,指针的只说指针,数组的只说数组,没有结合起来系统的讲解, 我看得好像明白又好像不明白,搞得我一头雾水! [ 本帖最后由 语文不及格 于 2008-9-25 00:14 编辑 ] |
|
TOP |










