C语言初学者关于int与简单程序的部分小问题

初学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
int main()//这里的int代表main()这个函数的返回值是一个整数 用return来返回

 比如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 main(){
    int a=0;//设一个整型变量a=0
    a=add(2,3);//让a等于通过add计算后返回的数值
    printf("%d",a);//让控制台输出整数a
    getchar();
}

int add(int a,int b){
//最前面的int指返回类型 小括号里的两个int代表a与b的类型
    return a+b;//返回a+b后的数值
}

追问

我问一下,你写的这个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 ...(动作);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-14

上面的代码是错的,

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。

第2个回答  2015-07-14
int :如int a; int就像是一个模板,a就是模板做出来的,所有int这个板做出来的,都是int类型。
int类型:是一个数据范围,比如自然数的范围是1,2,3.。。而负数的范围是。。。这里的自然 数,负数,就相当于int。int的范围是-2^31~2^31.比如说,你是int类型的数据a;那么a就 是在这个范围的数。
第一次:int max(int a,int b);是声明:说明我将来(后面)要定义一个这样的函数。
第二次:int max(int a,int b);是使用这个函数,但你想这个函数都还没有函数体,怎么能调 用呢?这就是第一次出现的意义所在,声明之后就可以 以后再写函数体。
return:return就是返回函数的返回值。
return就是返回到int max(int a,int b);这个max函数入口(这个现在不能跟你说),是一个这里int类型的数据。
int main()
要对应return 0;

void(或者不写) main()
对应return ;
第3个回答  2015-07-14
int是C语言内置的数据类型其取值范围是-2^32 ~ 2^31-1,在使用时注意大数相加或相乘溢出问题。

int max(int a,int b);在开头写是预定义函数类型,否则在main函数中因找不到max函数定义而出现编译错误,后面是其函数实现。
第4个回答  2015-07-14
int max(int a,int b);

int 表示整型,int a 表示定义一个整型变量a
int max(...) 表示 函数max(...)最后返回的是一个整型值
这个程序在开头写了一次在第四行和后面还要再写

在第一行写是函数声明,如果一个函数要在定义之前调用,则要提前声明这个函数
第4行是错的
最后那个是函数的定义实现。
if(a>b)return a;else return b;这条把数值返回到哪条了?

>>返回给z,即z=max(x, y)追问

if(a>b)return a;else return b;这条返回给了Z是怎么看出来的啊

相似回答