C语言选择题一道

来源:百度知道 编辑:UC知道 时间:2024/05/04 04:16:35
下列程序执行后的输出结果是()
void func(int *a,int b[])
{b[0]=*a+6;}
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
请讲解一下。

选A
初始值 a =0; b[0] =3;
func(&a,b);
把a的地址和b的地址传给func
此时a的地址的值为0 而b的首地址(b[0]) = 3
b[0]=*a+6;也等于b[0]=0+6(注释 (*a )为解引用取值)
b[0]以前的值被新值覆盖 为 6

A b[0]的初值没有用,它还会被重新赋值

选A
func的功能是使B第一个元素用a所指的内容加上6.
首先看下main函数。初值a=0;b[0]=3;那么调用func(&a, b);是就相当于b[0]=0+6 =6;
因而选a