【发布时间】:2018-08-23 21:59:19
【问题描述】:
这是一个简单的程序
#include<stdio.h>
void get(int,int);
void main()
{
int a,b;
get(a,b);
printf("In main");
printf("%d",a);
}
void get(int m,int n)
{
printf("enter the value");
scanf("%d%d",&m,&n);
}
我得到的输出是
enter the value
4
5
主要:
0
为什么get()中的m的值没有分配给main()中的a?我的错误是什么?
【问题讨论】:
-
C 使用按值调用。
m和n是函数get()的输入,但如果get修改它们(就像这里所做的那样),修改后的值不会不他们回到main()。本质上,您正在尝试定义一个返回两个值的get函数。有很多方法可以做到这一点,但它们更先进。建议暂时不要担心这个。 -
您可能需要一个指向该值的指针,以便您可以更改它,并且该值也将在
get()函数的范围之外更改。否则你会想要返回一些东西,因为这些值在你的函数结束时被丢弃。 -
请正确缩进您的代码。机器(编译器)可以读取和编译任何东西,但是对于人类来说,它需要在将文本块读取为 code 时做出一点sense。提问时,文本区域右侧有一个橙色的大如何格式化框。还有一个完整的格式化辅助工具栏。还有一个 [?] 按钮提供格式化帮助。还有一个预览区域,显示您的帖子发布后的样子。使您的帖子清晰,并证明您花时间这样做,可以提高您获得好答案的机会。
-
@RohanKumar 如果您能够更彻底地编辑散文以提高可读性,您的编辑可能会更早被接受......
-
另外,与您的问题无关,但您应该知道:
main()应该是int,而不是void。最好在你还在学习的时候把它做好。
标签: c