当前位置: 首页 > news >正文

甘肃省建设厅执业资格注册中心网站网络搭建百度百科

甘肃省建设厅执业资格注册中心网站,网络搭建百度百科,建设家装网站,南宁哪里有seo推广厂家本文介绍了C语言的return语句及其它在C语言函数中的作用,以及介绍了二维数组和一维数组传参时的一些注意事项和使用数组传参时的方法。 若没有学习过C语言的一维数组和二维数组,建议参考如下文章: C语言(15)--------…

本文介绍了C语言的return语句及其它在C语言函数中的作用,以及介绍了二维数组和一维数组传参时的一些注意事项和使用数组传参时的方法。

若没有学习过C语言的一维数组和二维数组,建议参考如下文章:

C语言(15)-------------->一维数组-CSDN博客

C语言(16)---------->二维数组-CSDN博客

一、return语句

1.return语句后面可以是一个数值,也可以是一个表达式,若是一个表示式则计算表达式后,返回表达式的值。

参考:(return语句后面是一个数值)

#include <stdio.h>int test(int x,int y)
{int z = 0;z = x + y;return z;
}int main()
{int add = 0;add = test(4,5);printf("add=%d\n", add);return 0;
}

运行结果:

参考:(return语句后面是一个表达式)

#include <stdio.h>int test(int x,int y)
{return x + y;
}int main()
{int add = 0;add = test(4,5);printf("add=%d\n", add);return 0;
}

运行结果:

2.可以直接使用一个return,适合的函数返回类型是void型。

同时,return语句执行时,函数将彻底返回,后边的代码不再执行。

实验代码:

#include <stdio.h>//打印1到n的数字
void Print(int n)
{if (n < 1)return;//若传入的数字小于1,函数提前返回,提前结束//不使用break的原因是因为break通常用于循环中int i = 0;for (i = 1; i <= n; i++){printf("%d ",i);}
}int main()
{int re = 0;Print(-2);//打印1到100的数字return 0;
}

此用法使用时函数提前返回,提前结束。

(1)启动调试

(2)逐语句调试,直至进入函数前

(3)到达Print函数时逐语句调试进入函数体内部 

(4)Print函数体内部逐语句调试

 函数体内if的判断

 n=-2,n是小于1的,执行return语句,跳出函数体。

 跳出函数体回到主函数中

 主函数中逐语句调试,直至退出。

 3.return返回的值和函数的返回类型不一样时,系统将隐式转换为函数的返回类型。

实验代码:

#include <stdio.h>int test()
{return 3.5;
}int main()
{int re = 0;re=test();printf("re=%d\n",re);return 0;
}

4. return语句执行时,函数将彻底返回,后边的代码不再执行。

实验代码:

#include <stdio.h>int test()
{return 3.5;printf("hehe\n");
}int main()
{int re = 0;re = test();printf("re=%d\n", re);return 0;
}

运行结果:

 从运行结果中,可以看到test函数执行return语句后,不再执行return语句后面的printf函数。

分析:

(1)启动调试

(2)逐语句调试

 

5.若函数中存在if等分支语句,要保证每种情况下都有return返回,否则会有编译错误。 

实验代码:

#include <stdio.h>int test(int n)
{if (n % 2 == 1)return 1;
}int main()
{int re = 0;re = test(4);printf("re=%d\n", re);return 0;
}

运行结果:

出现警告的原因是忽略了为偶数的情况,当输入偶数时没有返回值。

修改:

代码:

#include <stdio.h>int test(int n)
{if (n % 2 == 1)return 1;elsereturn 0;
}int main()
{int re = 0;re = test(4);printf("re=%d\n", re);return 0;
}

运行结果:

二、数组作为函数的参数

例如,在一个数组中存放了1到10的数字,现在需要使用函数实现将这10个数字都变成0。怎么编写这个函数呢?

首先,函数要遍历1到10的数字。

其次,把这10个数字都赋值成0。

#include <stdio.h>//函数的功能:将数组中的内容都变成0
void Set_Arr(int arr2[], int sz2)
{int i = 0;for (i = 0; i < sz2; i++){arr2[i] = 0;}
}int main()
{int arr1[] = {1,2,3,4,5,6,7,8,9,10};int sz1 = sizeof(arr1) / sizeof(arr1[0]);Set_Arr(arr1,sz1);return 0;
}

注意事项: 

 1.函数的形参名和实参名可以一样。此处为了方便在调试窗口中观察使用了不同的名字。

2.数组传参写的是数组名,对于数组知识不扎实的可以参考我之前写的博客:

C语言(15)-------------->一维数组-CSDN博客

3.对于一维数组,形参写的是数组的形式,并且在形参书写的时候可以省略数组的个数。

4.对于二维数组,形参写的是数组的形式,并且在形参书写的时候可以省略数组的行数,但是不可以省略数组的列数。

对于二维数组不了解的可以参考我的博客:

C语言(16)---------->二维数组-CSDN博客

5.数组传参后,形参的数组和实参的数组是同一块空间,改变形参的数组就是改变实参的数组(请看下面的调试过程)

(1)启动调试

(2)逐语句分析进入函数的内部:

 (3)打开监视窗口,监视arr1和arr2

我们可以看到arr1和arr2的地址是一样的,说明共用了同一块内存,如果修改了arr2中的内容那么arr1中的内容也会被修改。 

(4)修改成功

  

如果学会了数组的传参,那么现在我们再为刚刚那个例子写一个函数,实现数组内容的打印。

参考代码:

#include <stdio.h>//函数的功能:将数组中的内容都变成0
void Set_Arr(int arr2[], int sz2)
{int i = 0;for (i = 0; i < sz2; i++){arr2[i] = 0;}
}//函数的功能:打印数组中的内容
void Print_Arr(int arr3[], int sz3)
{int i = 0;for (i = 0; i < sz3; i++){printf("%d ",arr3[i]);}printf("\n");//换行,若此函数复用时也可以区分数字
}
int main()
{int arr1[] = {1,2,3,4,5,6,7,8,9,10};int sz1 = sizeof(arr1) / sizeof(arr1[0]);Print_Arr(arr1, sz1);//数组内容改变前Set_Arr(arr1,sz1);Print_Arr(arr1, sz1);//数组内容改变return 0;
}

运行结果:

 

将一个二维数组中的数字全部替换为1。

 参考代码:

#include <stdio.h>
#define Column 6//将二维数组中的内容全部替换为1
void Set_Two_Arr(int arr2[][Column], int ROW1,int Column1)
{int i = 0;for (i = 0; i < ROW1; i++){int j = 0;for (j = 0; j < Column1; j++){arr2[i][j] = 1;}}
}//打印二维数组
void Print_Two_Arr(int arr3[][Column], int ROW2, int Column2)
{int i = 0;for (i = 0; i < ROW2; i++){int j = 0;for (j = 0; j < Column2; j++){printf("%d ", arr3[i][j]);}printf("\n");//避免所有的数字都在一行}printf("\n");//换行,若此函数复用时也可以区分数字
}
int main()
{int arr1[][Column] = { {1,2,3,4,5,6},{2,3,4,5,6,7},{3,4,5,6,7,8} };int sz = 0;sz = sizeof(arr1) / sizeof(arr1[0][0]);//计算二维数组中的个数int ROW = sz / Column;Print_Two_Arr(arr1, ROW, Column);//数组内容改变前Set_Two_Arr(arr1,ROW,Column);Print_Two_Arr(arr1, ROW, Column);//数组内容改变return 0;
}

运行结果:

  二维数组传参时形参和实参所用地址一样的:

  对于数组的传参,做如下的总结:

  1. 函数的形参与实参的个数要匹配。
  2. 函数的实参是数组,形参的形式也可以写成数组。
  3. 形参若是一维数组,则数组的大小可以忽略不写。
  4.  形参若是二维数组,则数组的行可以忽略不写,但是列数一定要写
  5. 数组传参不会创建新数组,这是因为数组传参的形参和实参的地址是同一块的。
  6. 形参操作的数组和实参的数组是同一个数组。

 

http://www.yayakq.cn/news/677281/

相关文章:

  • 做网站优化期间能收到网站吗广东东莞营销
  • 亚马逊店铺网站建设费用设计邦中国官网
  • 教育培训网站案例梭子手做鱼网站
  • 做金融量化的网站建设工程挂网是在那个网站
  • 学校网站建设的技术方案网站信息备案查询系统
  • 淘宝客做网站自动更新网站建设开发服务费税率
  • 国外网站设计欣赏上海 网站备案代理
  • 个人博客网站模板wordpresswordpress 链接地址
  • 信阳做网站的广告行业包括网站建设吗
  • 婚纱网站开发html网站模板 免费
  • 苏州网站建设托管手机怎么查看网站代码实现的
  • 山东网站建设代理厂房外墙设计效果图
  • 网站建设要做哪些工作息壤空间怎么上传网站
  • 嘉定网站网站建设上海网站建设哪家技术好
  • 邯郸手机网站建设服务wordpress 中文数据库
  • 收费网站建设视频教程免费下载网站界面设计案例
  • 网站之家app模版用iis在自己家电脑上做网站
  • 关于棋牌游戏网站建设文案网页版微信二维码几分钟失效
  • 重庆网站seo案例杭州建设网通知公告栏
  • 做淘宝门头的网站九亭 网站建设
  • 有网站代码 如何建设网站个人网站制作在线
  • page做网站免费域名分发系统
  • 怎么创建网站免费的网页设计基础实训的期末试卷和答案
  • 从化一站式网站建设网站的图片要会员才能下载怎么做
  • 曰本孕妇做爰网站网站做桌面应用 iOS
  • wap手机网站开发说出网站建设流程
  • 自己做网站接入微信和支付宝wordpress更改数据库域名链接
  • 转播网站如何做做软件多少钱
  • 物理机安装虚拟机做网站做网站哪个比较好
  • 公司换网站换域名 备案厦门软件网站建设