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

报电子商务(网站建设与运营)九江学网站建设

报电子商务(网站建设与运营),九江学网站建设,老板企业管理培训课程,中国丹东c过渡c应知应会#xff08;2#xff09;1.缺省参数2.函数重载3.引用4.inline1.缺省参数 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时#xff0c;如果没有指定实参#xff0c;则采用该形参的缺省值#xff0c;否则使用指定的实参#xff0c;缺… c过渡c应知应会21.缺省参数2.函数重载3.引用4.inline1.缺省参数 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时如果没有指定实参则采用该形参的缺省值否则使用指定的实参缺省参数分为全缺省和半缺省参数。 全缺省 全部形参给缺省值。 半缺省 部分形参给缺省值。 注意c规定半缺省参数必须从右往左依次连续缺省不能跳跃的给。 调用带缺省参数的函数时必须从右往左依次给实参不能跳跃的给。 关键 函数声明和定义分离时缺省参数不能在函数声明和定义中同时出现规定必须在声明中给缺省值 int add(int a, int b1)//半缺省 {return a b; } int main() {add(1);//b使用缺省值return 0; }int add(int a1, int b1)//全缺省 {return a b; } int main() {add();//没有传参的话使用缺省值return 0; }2.函数重载 在上一次学习中我们知道c支持在不同域使用同名变量函数等。 除此之外c还可以在同一作用域出现同名函数。 但是有些人就要问了为什么非得创建同名函数呢名字不一样不照样可以使用吗 让我们看这个例子: int Add1(int l,int r) {return lr; } double Add1(double l,double r) {return lr; }我们想实现两个数相加函数但针对不同类型时却可能要将函数名变成Add1,Add2… 这无疑会在将来调用时产生隐患。所以c支持出现同名函数要求同名函数的形参不同可以参数个数不同或者类型不同。 int Add(int l,int r) {return lr; } double Add(double l,double r) {return lr; }这样在将来调用相加函数时一律写成Add即可。 这段代码有问题吗 void func() {std::cout fun() std::endl; } void func(int a 10) {std::cout func(int a) std::endl; }毋庸置疑两个函数构成重载。如果程序中没有func();就不会报错但是如果有这一条语句编译器就不认得到底要调用哪一个函数。 3.引用 概念引用就是给已存在变量取了一个别名。 编译器不会为引用变量开辟内存空间。它和它引用的变量共用同一块内存空间。 例如这里有一只猫你可以叫它猫也可以叫它哈基米也可以叫它专属的名字。 定义方式 类型 引用别名 引用对象 int main() {int a 0;int b a;a;std::cout b std::endl;//输出结果为1return 0; }关于引用需要注意的点 1.引用在定义时必须初始化例如int a 0; int b a;不允许等号右边没有变量。 **2.**一个变量可以有多个引用。 **3.**引用只能引用一个实体不能改变 引用的用处 在c语言阶段我们经常使用指针来操作并解决问题。有了引用后指针涉及到的一些场景就可以被替代了。而且引用理解起来要比指针容易能减轻代码错误。 例如在交换两个变量的值时 void Swap(int a,int b) {int tmpa;ab;btmp; }这样写非常容易理解。 再比如在学习数据结构栈时我们在操作改动栈时必须要用一级指针来传参。但有了引用以后我们可以直接传引用。比方说在入栈时我们直接进行操作即可不用使用-操作符了 void STPush(ST rs, STDataType x) {assert(ps);// 满了 扩容 if (rs.top rs.capacity){printf(扩容\n);int newcapacity rs.capacity 0 ? 4 : rs.capacity * 2;STDataType* tmp (STDataType*)realloc(rs.a, newcapacity *sizeof(STDataType));if (tmp NULL){perror(realloc fail);return;}rs.a tmp;rs.capacity newcapacity;}rs.a[rs.top] x;rs.top; }4.inline 用inline修饰的函数叫做内联函数编译时编译器会再调用的地方展开内联函数这样就不需要建立栈帧提高效率了。 inline int add(int a, int b) {return a b; } int main() {//如果汇编中有call add语句就是没有展开否则就是展开了add(1, 2);return 0; }注意 在vs编译器debug版本下默认是不展开inline这样方便调试。 (出现了call add说明没有展开) inline不建议声明和定义分离到两个文件。因为如果inline被展开就没有函数地址。在链接阶段链接器需要根据函数调用找到对应的函数定义但此时可能找不到该函数的地址从而导致链接错误。 完 如果发现错误欢迎打在评论区。 主页还有更多优质内容OvO
http://www.zqtcl.cn/news/93152/

相关文章:

  • 怎么做网站背景专做民宿预定的网站
  • wordpress安装谷歌分析代码建网站seo
  • 百度外卖网站建设与维护方法建设 银行网网站
  • 小程序开发定制开发上海优化价格
  • 来宾住房和城乡建设局网站做外贸推广要做哪些平台
  • 无锡建设网站制作wordpress 知乎
  • 动漫网站源码免费怎么怎么做网站
  • 和两个黑人同时做网站中工互联网站建设
  • windows10PHP 网站建设app应用分发平台开发
  • 中唯建设工程有限公司网站做网站页面对PS切图
  • 个人网页制作成品欣赏seo网站沙盒期
  • 亚马逊站外推广网站怎么做制作营销网站模板免费下载
  • 加拿大网站后缀设计师互联网
  • 做物流的网站有哪些内容共同建设网站心得
  • 主题资源网站建设什么网站做污水处理药剂的好
  • 河北建设厅网站修改密码在哪58同城宿迁二手房
  • 淘宝联盟的购物网站怎么做免费网站模板素材
  • 淄博市网站云平台长沙seo 优化选智投未来no1
  • 手机网站导航模板wordpress子域名设置
  • 济南市网站推广公司甘肃网站建设方案优化
  • 网站排名西安工商所什么网站可做年报
  • 网站怎样做反向链接哪个网站可以做代码题目
  • opencart做外贸网站怎样丽水市城乡建设局网站
  • 黑色网站配色typora wordpress
  • 哪个网站做的系统好用吗开一家网站建设公司好
  • 高仿服装网站建设高端网站建设服务
  • 网站怎么做前后台存取旅游网站建设的目的与意义是什么意思
  • 网站一年了百度不收录自己做的网站怎么植入erp
  • 怎样做能让招聘网站记住密码广州建设营销型网站
  • wordpress 小说多站5个月的新站网站被k了会怎么样