c语言选择题
关于函数的下列说法正确的是:()A.函数内部可以改变实参的值B.函数可以有多个返回值C.函数调用时将实参的值赋给形参D.函数可以返回其内部变量的地址求AD的解释,给的答案...
关于函数的下列说法正确的是: ()
A. 函数内部可以改变实参的值B. 函数可以有多个返回值
C. 函数调用时将实参的值赋给形参D. 函数可以返回其内部变量的地址
求AD的解释,
给的答案是C,我就是觉得A中,如果用指针算不算改变实参的值,还有D,到底对不对啊?貌似大家观点都不一样啊 展开
A. 函数内部可以改变实参的值B. 函数可以有多个返回值
C. 函数调用时将实参的值赋给形参D. 函数可以返回其内部变量的地址
求AD的解释,
给的答案是C,我就是觉得A中,如果用指针算不算改变实参的值,还有D,到底对不对啊?貌似大家观点都不一样啊 展开
9个回答
展开全部
当函数的形参为指针变量时,也就是你传递给函数的是一个变量的地址,那么你在函数里面也就是对地址中的变量的操作,所以,函数内部是可以改变实参的数值的。只有当你传递给函数的不是一个地址而是一个变量时,编译器才会把这个值复制到堆栈中,因为所有被调用的子函数的执行过程中,变量都是放在堆栈中进行的。
d中,函数返回的变量类型,如果为指针变量就可以返回地址了。任何一个变量都有地址,当然可以返回变量的地址了。
刚看到各位大侠都这么热心,早知道我就不回答了,⊙﹏⊙b汗。。。
哥们儿,忍了吧,我就认为这题目是多选,。但这是应试教育啊,为了你的考试,你还是按照出题人的答案来理解吧。等你工作中实际用到就知道这种无聊的题目完全是应付考试而已,再没别的用处。
d中,函数返回的变量类型,如果为指针变量就可以返回地址了。任何一个变量都有地址,当然可以返回变量的地址了。
刚看到各位大侠都这么热心,早知道我就不回答了,⊙﹏⊙b汗。。。
哥们儿,忍了吧,我就认为这题目是多选,。但这是应试教育啊,为了你的考试,你还是按照出题人的答案来理解吧。等你工作中实际用到就知道这种无聊的题目完全是应付考试而已,再没别的用处。
展开全部
B函数无法有多个返回值,可以返回一个复合数据类型,比如结构或者类。
D函数无法返回内部变量的指针和引用。因为函数消失的时候,会将局部变量回收的。指向一个不存在的变量的指针或者引用会出现错误。。
A函数内部当然可以改变一个实际参数的值了。。可以将实参的地址传过去,通过解引操作改变
C函数的确只是将实参赋值给形参而已。
D函数无法返回内部变量的指针和引用。因为函数消失的时候,会将局部变量回收的。指向一个不存在的变量的指针或者引用会出现错误。。
A函数内部当然可以改变一个实际参数的值了。。可以将实参的地址传过去,通过解引操作改变
C函数的确只是将实参赋值给形参而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A这个在c语言书里都有的
实参的值传给形参,所以函数内部改变的只是形参的值,与实参无关
如果A中用指针的话那么实参就是这个指针了,你不能改变这个指针的值,但是可以改变这个指针所指向地址空间里存储的值。不知道能不能看懂
D错的
函数内的给变量分配的空间在函数结束的时候就释放了,无法返回
实参的值传给形参,所以函数内部改变的只是形参的值,与实参无关
如果A中用指针的话那么实参就是这个指针了,你不能改变这个指针的值,但是可以改变这个指针所指向地址空间里存储的值。不知道能不能看懂
D错的
函数内的给变量分配的空间在函数结束的时候就释放了,无法返回
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A 就不用说了 推荐答案给出的是正确的解释
关于 D 谁说不可以 返回 内部变量的地址 自己看下面的代码
可以说 不推荐不要这么用 但是 不能说 不 可以返回
int * fun()
{
static int i = 0;
return &i;
}
void main()
{
int * p = fun();
*p++;
printf("%d\n", *p);
}
什么书啊 D 代码都写出来了 还有疑问?
静态局部变量的生命 周期和程序是一样的.. 即使函数执行完后, 还是不会被释放...
关于 D 谁说不可以 返回 内部变量的地址 自己看下面的代码
可以说 不推荐不要这么用 但是 不能说 不 可以返回
int * fun()
{
static int i = 0;
return &i;
}
void main()
{
int * p = fun();
*p++;
printf("%d\n", *p);
}
什么书啊 D 代码都写出来了 还有疑问?
静态局部变量的生命 周期和程序是一样的.. 即使函数执行完后, 还是不会被释放...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A、函数无法改变实参的值,指针参数改变的不是指针本身
B、函数可以返回多个不同的值,一次调用只能返回一个值
C、C语言的函数参数全部是值传递的
D、从语法上是没有错误的
B、函数可以返回多个不同的值,一次调用只能返回一个值
C、C语言的函数参数全部是值传递的
D、从语法上是没有错误的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询