当函数的形参为指针变量时,也就是你传递给函数的是一个变量的地址,那么你在函数里面也就是对地址中的变量的操作,所以,函数内部是可以改变实参的数值的。只有当你传递给函数的不是一个地址而是一个变量时,编译器才会把这个值复制到堆栈中,因为所有被调用的子函数的执行过程中,变量都是放在堆栈中进行的。
站在用户的角度思考问题,与客户深入沟通,找到永和网站设计与永和网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、网站设计、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖永和地区。
d中,函数返回的变量类型,如果为指针变量就可以返回地址了。任何一个变量都有地址,当然可以返回变量的地址了。
刚看到各位大侠都这么热心,早知道我就不回答了,⊙﹏⊙b汗。。。
哥们儿,忍了吧,我就认为这题目是多选,。但这是应试教育啊,为了你的考试,你还是按照出题人的答案来理解吧。等你工作中实际用到就知道这种无聊的题目完全是应付考试而已,再没别的用处。
标准ANSI/ISO C不允许函数的嵌套定义。某些方言如GNU C允许函数的嵌套定义,并有限地支持闭包。学习C语言应以标准C为准,所以,C正确。fun((2,3), (4,5+6,7))含有2个参数,每个参数均为一个逗号表达式,值分别为3和7,相当于fun(3, 7)。所以,B正确。
正确答案是A.
B选项。不能嵌套定义。C选项,函数可以没有返回值。D选项,没有必要放在同一个c文件中,用其他c文件的函数可以给其定义的地方函数名前面加extern修饰。
C正确
A.函数可以没有返回值,如:
void Show(int x)
{
printf("%d\n",x);
}
这个函数的功能仅仅是将传入的x输出到控制台,它没有返回值,但是可用。
B.函数可以嵌套调用,但不可以嵌套定义。标准C语言不支持嵌套定义,但是有编译器是支持的,如gcc,下面这个程序在gcc编译和运行是没有任何问题的,在VC6.0中编译不过,本题中指的应该是标准C语言。
#includestdlib.h
#includestdio.h
int main()
{
void f(int i)//嵌套定义函数体
{
printf("%d\n",i);
}
int i=1;
f(i);
i=2;
f(i);
return 0;
}
C,对。函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,如想实参的值也改变就必须传入指针。
D.main函数也是一个函数,将它看成普通的函数就可以了,它可以放在任何的位置,只是C语言是以main为入口的,那么在执行main函数时,在它(main)的前面就必须要有其他函数的声明或者定义。如下面例子的两种形式都是正确的。
形式1,其它函数的定义放在main函数前。
#includestdio.h
void Show(int x) //函数定义
{
printf("%d\n",x);
}
void main()
{
int x = 0;
Show(0);
}
形式2,其他函数定义放在main函数后。
#includestdio.h
void Show(int x);//函数声明
void main()
{
int x = 0;
Show(0);
}
void Show(int x) //函数定义
{
printf("%d\n",x);
}
第一个是对的,C中规定局部变量名不能是重复的,不然编译时会报错
第二个也是对的 一次函数调用最多返回一个结果值,这里最多指的是小于等于1 所以VIOD时是不返回结果值的
第三个对的 书上概念 记着就行
第四个不对 main只能调用 但是不能访问其他函数的变量
A。打个比方,求平方函数的形式应该是y=x^2,现在我想求2的平方,那么应该是把2代入x,求相应的y,而不是把x代入2。
B错。不能嵌套定义
C错。可以有无返回值的函数的。
D错。可以放在不同文件中