初学C语言,有问题不清楚啊
比如
1、
int,我了解的定义不太清楚,这个INT的作用是什么?是干什么的?什么用途?我只听说作用是定义返回值类型,函数的返回值只能是int类型(规范),还听说作用是定义数据为整数,那作用到底是什么?
还有,来个人告诉我
int在所有情况下的作用和使用注意事项,比如 int main中int的作用和注意事项,int max 啊,什么的,各种情况下的作用和使用注意事项
这么不清楚用下去以后估计会出问题
2、
程序
int max(int a,int b);
int main()
{
int x,y,z;
int max(inta,int b);
printf("input two numbers:\n");
scanf("%d%d",&x,&y);
z=max(x,y);
printf("maxmum=%d",z);
}
int max(int a,int b)
{
if(a>b)return a;else return b;
}
关于这个程序我的问题是,int max(int a,int b);,这个程序在开头写了一次在第四行和后面还要再写吗?为什么?还有,在程序中,printf("maxmum=%d",z);不是已经输出结果了吗,后面的
int max(int a,int b)
{
if(a>b)return a;else return b;
}
作用是什么?最后,if(a>b)return a;else return b;这条把数值返回到哪条了?(写出来)
1.int是一个变量类型 可以用来储存整型变量
int a=2;//代表定义一个整型变量 名称为a 值为2比如return a;这就代表返回变量a里所储存的数值 如果a=2那就是返回2 当然也可以直接填数字 不必用变量代替
注意事项啊 注意不要超过整型变量可以储存的最大值和最小值就好了 建议你去找本C语言书看看
==
2.在开头写 int max(int a,int b); 是要向系统声明有这个函数存在
在调用函数的时候会先找到这个函数再进行调用 而这个寻找是向上寻找(C语言里是这样 其他的好像没有这个限制)
因为main这个函数里调用了max这个函数 而这个max函数又在main的下边 所以要先声明有max这个函数的存在 你可以把 int max(int a,int b); 当做是把下面的max这个函数的位置调到了上面
至于你说的printf() 这个是输出的语句 即在控制台上输出一段字符串
而return是在调用该函数之后返回的一个数值
假如说main这个函数里调用一个叫add的函数 add的功能就是要把两个数字加起来
那加起来后的这个数字要怎么返回到main里让main知道这个数字是多少呢
就是通过add里的return语句返回数字 例如:
#include "stdio.h"我问一下,你写的这个void听有的人说,是无返回值的,还说在部分情况下是不规范的,那么是不是最好就不要用了?(在开头用)而且if(a>b)return a;else return b;这个是怎么才能看出来返回到了Z的啊,从字面上来看他不是返回a、b吗?C语言书正在看,但是看到不懂的地方了所以就来问了
追答不写void才是不规范的吧。。你说的部分情况指的应该不是main这个主函数 应该是像add max这类的函数吧
if(a>b)return a;else return b;
这个代表的是
如果(a 大于 b) 则 返回 a;否则 返回 b;
这个是个条件判断语句 格式为:
if(条件表达式) ....(动作);
else ...(动作);
上面的代码是错的,
main函数里不需要 int max(inta,int b); 这句了。
建议你先看看《C程序设计语言》
int 是类型,可以用来定义变量,函数(参数,返回值)
前面的int max(int a,int b); 是**声明**,后面的 int max(int a,int b) { if(a>b)return a;else return b; } 是**定义**。
max函数里把数值返回给了z。 z=max(x,y);
那段长的码是从C语言程序设计的书里扒下来了的,这么写有错误吗?
追答有错!
追问会产生什么问题啊
追答产生的问题是上面的代码编译不了。
在main函数里声明其他函数是非法的!
那应该把第四行删掉吗?
追答嗯,把main里的int max(inta,int b); 删掉
追问if(a>b)return a;else return b
这条把数值返回给了Z,这个是怎么从文字里看出来的啊,这条里写的是return a 和return b啊
具体返回给谁,要看max这个函数在哪里被调用
z=max(x,y); 这样就是返回给z!
啊,这个懂了,但是还有个问题,那就是scanf("%d%d",&x,&y);
这条不是输入了X和Y吗,为什么没有直接通过z=max(x,y);
输出最终结果呢?因为这条只是调用而不是实际使用吗?
输出用的是 printf("maxmum=%d",z);
z=max(x,y); 只是计算一下最大值,并把值会返回给z。
if(a>b)return a;else return b;这条返回给了Z是怎么看出来的啊