菜鸟级别的问题不会占用前辈们太多的时间,你随手一点,我受益非浅!
(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 一样!
请原谅我不是没有好好看书,我知道书上一定有讲解,但是
都是零零碎碎的东点西点,指针的只说指针,数组的只说数组,没有结合起来系统的讲解,
我看得好像明白又好像不明白,搞得我一头雾水!
[[it] 本帖最后由 语文不及格 于 2008-9-25 00:14 编辑 [/it]]