300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 返回值的类型详解

返回值的类型详解

时间:2024-06-30 01:12:57

相关推荐

返回值的类型详解

1.return的用法

函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过return语句返回。(这句话摘录C语言中文网)

1.1 return的一般表现形式:

return (表达式);

或者

return 表达式;

1.2 return在函数中的应用:

1.2.1 在无返回值类型函数中的应用:(即void类型)

void fun (){printf ("hello world");}int main(){fun();return 0;)

在这段代码中,一旦建立了void类型函数,就不能再接受其返回值了,它也没有其返回值让你接收,比如下面这句就是错误的;

int a = fun();

这里就是非法使用void 类型函数。

1.2.2 在需要返回值类型函数中的应用:

这里我们用一段简单的比较大小函数来看看return的一些应用。

int Max(int a, int b){if (a > b){return a;//当a>b时候返回a}else{return b;//当b>a或者相等时候返回b}}int main(){int a = 3;//初始化a赋值为3int b = 4;//初始化b赋值为4int max = Max(a, b);//建立一个函数来比较a,b的大小printf("%d", max);return 0;}

这里我们看到在一个函数体中,return 语句可以多个存在,但是当我们执行到第一个return语句时程序就不会继续向后面执行。

由此我们可以得到,return语句具有强制结束函数执行的作用;这里需要知道是,return语句是提前结束函数的运行的唯一办法!

1.当return语句后面跟数据的时候,这时会将这个数据返回到函数体外面

2.当return语句后面什么都没有的时候,这时具有强制结束函数的的作用(若是你并不要需要函数返回值时,并不建议使用return语句,为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为 void 类型。

2.printf的返回值

C语言printf函数的返回值是printf实际控制输出的字符数

这里我们说一下会被很多我们初学者忽略的一个东西printf的返回值,我们都清楚printf的用法但很多都不知道原来printf也有返回值。这里我们用一段代码来看;

int main(){int a = 3;//初始化a赋值为3printf("%d",printf("%d\n",a));return 0;}

这里我们得到的答案是:

3

2

下面我们来分析一下为什么是这个答案:

1. 这段代码中我们先执行的是括号里面的printf语句,因为我们先把3赋值给a,所以打印出来3;因为有/n转行符所以到下一行;

2.这里2的由来就是第一个printf语句的返回值,返回值就是括号里面的printf语句里面的字符个数,比如:这里'3' '/n' 这里有二个字符,所以返回值就是2;

由此我们可以得到,printf的返回值就是输出的字符数量!

3.scanf 的返回值

scanf 函数的返回值反映的是按照指定的格式符正确读入的数据的个数。 如果输入数据与指定格式不符,则会产生输入错误。 遇到输入错误,scanf函数会立即终止,返回已经成功读取的数据的个数。

同上,scanf的返回值也是被大家所忽略的,闲话少说,我们直接上代码;

int main(){int a = 0;int b = scanf("%d", &a);printf("%d",b);return 0;}

这里我们用整形变量b来接收scanf的返回值,当我们进行以下不同的输入情况进行判断:

3

1

1.当我们输入3的时候,printf打印出的结果是1

e

0

2.当我们输入字符e的时候,printf打印出的结果是0

进行到这里的时候,我们改变b的变量类型:

int main(){char a = 0;int b = scanf("%c", &a);printf("%d",b);return 0;}

当我们将a的类型改成char类型的时候我们在输入之前的二个数据

3

1

这里再输入3时得到的答案是1

e

1

这里输入e的值得到的也是1

这里我们就会出现疑问了,为什么在int类型中我们输入e时,会打印出0呢?

下面我们再做一个实验就知道了;

int main(){int a = 0;int c = 0;int b = scanf("%d %d", &a, &c);printf("%d", b);return 0;}

这次我们利用二个变量,a变量和c变量,再用c变量来接收scanf的返回值;

32 e

1

这次我们输入32和e时,得到的打印结果为1;原来当我们输入32时候scanf可以接收整形输入与之匹配但是当我们输入e这个字符变量时,scanf是接收不了的与指定格式不符则显示错误,就会终止,最后返回与之匹配的输入个数。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。