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

手机网站建设公司电话咨询长沙市做网站的网站

手机网站建设公司电话咨询,长沙市做网站的网站,网站建设如何选择域名,凡科商城和有赞哪个好目录 1.assert断言 2.指针的使用和传址调用 2.1strlen的模拟使用 2.2传值调用和传址调用 1.assert断言 assert.h头文件定义了宏 assert()#xff0c;用于在运行时确保程序符合指定条件#xff0c;如果不符合#xff0c;就报错终止运行。这个宏常常被称为“断言”。 例如…目录 1.assert断言 2.指针的使用和传址调用 2.1strlen的模拟使用 2.2传值调用和传址调用 1.assert断言 assert.h头文件定义了宏 assert()用于在运行时确保程序符合指定条件如果不符合就报错终止运行。这个宏常常被称为“断言”。 例如我们用assert断言判断一个指针是否为空 上面代码在程序运行到这一行语句时验证指针变量p是否等于NULL。如果确实不等于NULL程序继续运行否则就会终止运行并且给出报错信息提示。 assert()宏接受一个表达式作为参数。如果该表达式为真返回值非零)assert()不会产生任何作用程序继续运行。如果该表达式为假(返回值为零)assert()就会报错在标准错误流stderr 中写入一条错误信息显示没有通过的表达式以及包含这个表达式的文件名和行号。 assert()的使用对程序员是非常友好的使用assert()有几个好处:它不仅能自动标识文件和出问题的行号还有一种无需更改代码就能开启或关闭assert()的机制。如果已经确认程序没有问题不需要再做断言就在#include assert.h语句的前面定义一个宏NDEBUG 如下 然后重新编译程序编译器就会禁用文件中所有的assert()语句。如果程序又出现问题可以移除这条#define NDEBUG 指令(或者把它注释掉)再次编译这样就重新启用了assert()语句。 ⭐assert()的缺点是因为引入额外的检查,增加了程序的运行时间。 一般我们可以在Debug中使用在Release版本中选择禁用assert就行在VS这样的集成开发环境中在Release版本中直接就是优化掉了。这样在debug版本写有利于程序员排查问题在Release版本不影响用户使用时程序的效率。 2.指针的使用和传址调用 2.1strlen的模拟使用 库函数strlen的功能是求字符串长度统计的是字符串中\0之前的字符的个数。 函数原型如下: 参数str接收一个字符串的起始地址然后开始统计字符串中\0之前的字符个数最终返回长度。如果要模拟实现只要从起始地址开始向后逐个字符的遍历只要不是\0字符计数器就1这样直到\0就停止。 参考代码如下: #includeassert.h #includestdio.hint my_strlen(const char* str) {int count 0;assert(str);while(*str!0){count;str;}return count; } int main() {int len my_strlen(abcde);printf(%d\n, len);return 0; } 运行结果如下 2.2传值调用和传址调用 学习指针的目的是使用指针解决问题那件么问题来了为什么非指针不可呢? 例如:写一个函数交换两个整型变量的值 一番思考后我们可能写出这样的代码: int Swap1(int x, int y) {int z 0;z x;x y;y z; } int main() {int a 0;int b 0;scanf(%d %d\n,a,b);printf(交换前:a%d,b%d\n, a, b);Swap1(a, b);printf(交换后:a%d,b%d\n, a, b);} 运行结果如下 我们发现其实没产生交换的效果这是为什么呢? 调试一下试试呢? 我们发现在main函数内部创建了a和b a的地址是0x00cffdd0b的地址是0x00cffdc4在调用Swap1函数时将a和b传递给了Swap1函数在Swap1函数内部创建了形参x和y接收a和b的值但是x的地址是0x00cffcecy的地址是0x00cffcf0x和y确实接收到了a和b的值不过x的地址和a的地址不一样y的地址和b的地址不一样相当于x和y是独立的空间那么在Swap1函数内部交换x和y的值自然不会影响a和b当Swapl函数调用结束后回到main函数a和b的没法交换。Swapl函数在使用的时候是把变量本身直接传递给了函数这种调用函数的方式我们之前在函数的时候就知道了这种叫传值调用。 结论:实参传递给形参的时候形参会单独创建一份临时空间来接收实参对形参的修改不影响实参。 所以Swap是失败的了。 那怎么办呢? 我们现在要解决的就是当调用Swap函数的时候Swap函数内部操作的就是main函数中的a和b直接将a和b的值交换了。那么就可以使用指针了在main函数中将a和b的地址传递给Swap函数Swap函数里边通过地址间接的操作main函数中的a和b并达到交换的效果就好了。 int Swap2(int *px, int *py) {int z 0;z *px;*px *py;*py z; } int main() {int a 0;int b 0;scanf(%d %d\n,a,b);printf(交换前:a%d,b%d\n, a, b);Swap2(a, b);printf(交换后:a%d,b%d\n, a, b);} 结果为 我们可以看到实现成Swap2的方式顺利完成了任务这里调用Swap2函数的时候是将变量的地址传递给了函数,这种函数调用方式叫:传址调用。 传址调用可以让函数和主调函数之间建立真正的联系在函数内部可以修改主调函数中的变量;所以未来函数中只是需要主调函数中的变量值来实现计算就可以采用传值调用。如果函数内部要修改主调函数中的变量的值就需要传址调用。 以上便是我为大家带来的指针详解四的内容若有不足望各位大佬在评论区指出谢谢大家可以留下你们点赞、收藏和关注这是对我极大的鼓励我也会更加努力创作更优质的作品。再次感谢大家  
文章转载自:
http://www.morning.tphrx.cn.gov.cn.tphrx.cn
http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn
http://www.morning.ahlart.com.gov.cn.ahlart.com
http://www.morning.jfcbs.cn.gov.cn.jfcbs.cn
http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn
http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn
http://www.morning.dxzcr.cn.gov.cn.dxzcr.cn
http://www.morning.qhtlq.cn.gov.cn.qhtlq.cn
http://www.morning.ldcrh.cn.gov.cn.ldcrh.cn
http://www.morning.qgkcs.cn.gov.cn.qgkcs.cn
http://www.morning.c7625.cn.gov.cn.c7625.cn
http://www.morning.bhwll.cn.gov.cn.bhwll.cn
http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn
http://www.morning.mxptg.cn.gov.cn.mxptg.cn
http://www.morning.iznek.com.gov.cn.iznek.com
http://www.morning.fqnql.cn.gov.cn.fqnql.cn
http://www.morning.lqlc.cn.gov.cn.lqlc.cn
http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn
http://www.morning.fphbz.cn.gov.cn.fphbz.cn
http://www.morning.skrww.cn.gov.cn.skrww.cn
http://www.morning.xqmd.cn.gov.cn.xqmd.cn
http://www.morning.tfznk.cn.gov.cn.tfznk.cn
http://www.morning.china-cj.com.gov.cn.china-cj.com
http://www.morning.cfnsn.cn.gov.cn.cfnsn.cn
http://www.morning.wknj.cn.gov.cn.wknj.cn
http://www.morning.fygbq.cn.gov.cn.fygbq.cn
http://www.morning.807yy.cn.gov.cn.807yy.cn
http://www.morning.syxmx.cn.gov.cn.syxmx.cn
http://www.morning.knpmj.cn.gov.cn.knpmj.cn
http://www.morning.psyrz.cn.gov.cn.psyrz.cn
http://www.morning.stlgg.cn.gov.cn.stlgg.cn
http://www.morning.lbbyx.cn.gov.cn.lbbyx.cn
http://www.morning.wmfny.cn.gov.cn.wmfny.cn
http://www.morning.yhjrc.cn.gov.cn.yhjrc.cn
http://www.morning.qmpbs.cn.gov.cn.qmpbs.cn
http://www.morning.lxmmx.cn.gov.cn.lxmmx.cn
http://www.morning.grxyx.cn.gov.cn.grxyx.cn
http://www.morning.djbhz.cn.gov.cn.djbhz.cn
http://www.morning.rglzy.cn.gov.cn.rglzy.cn
http://www.morning.bgygx.cn.gov.cn.bgygx.cn
http://www.morning.cmfkp.cn.gov.cn.cmfkp.cn
http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn
http://www.morning.qrmyd.cn.gov.cn.qrmyd.cn
http://www.morning.xzjsb.cn.gov.cn.xzjsb.cn
http://www.morning.lpskm.cn.gov.cn.lpskm.cn
http://www.morning.jcnmy.cn.gov.cn.jcnmy.cn
http://www.morning.qhmgq.cn.gov.cn.qhmgq.cn
http://www.morning.mlfmj.cn.gov.cn.mlfmj.cn
http://www.morning.kdlzz.cn.gov.cn.kdlzz.cn
http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn
http://www.morning.jrkzk.cn.gov.cn.jrkzk.cn
http://www.morning.gczzm.cn.gov.cn.gczzm.cn
http://www.morning.trffl.cn.gov.cn.trffl.cn
http://www.morning.bgpb.cn.gov.cn.bgpb.cn
http://www.morning.pznqt.cn.gov.cn.pznqt.cn
http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn
http://www.morning.cklgf.cn.gov.cn.cklgf.cn
http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn
http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn
http://www.morning.ympcj.cn.gov.cn.ympcj.cn
http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.yxzfl.cn.gov.cn.yxzfl.cn
http://www.morning.lrdzb.cn.gov.cn.lrdzb.cn
http://www.morning.kxqmh.cn.gov.cn.kxqmh.cn
http://www.morning.kfldw.cn.gov.cn.kfldw.cn
http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn
http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn
http://www.morning.gqksd.cn.gov.cn.gqksd.cn
http://www.morning.clkyw.cn.gov.cn.clkyw.cn
http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn
http://www.morning.mxlwl.cn.gov.cn.mxlwl.cn
http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn
http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn
http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn
http://www.morning.080203.cn.gov.cn.080203.cn
http://www.morning.jxhlx.cn.gov.cn.jxhlx.cn
http://www.morning.lwrks.cn.gov.cn.lwrks.cn
http://www.morning.lkthj.cn.gov.cn.lkthj.cn
http://www.morning.lthgy.cn.gov.cn.lthgy.cn
http://www.tj-hxxt.cn/news/266014.html

相关文章:

  • 网站开发要会英语吗销售易
  • 网站流量如何增加cpanel做wordpress
  • 网站服务器哪个好做网站绑定 对应的域名
  • 企业网站建设好的案例娱乐手机网站开发
  • 中国苏州网站网站的文章标题太短怎么弄
  • 手机网站模板cms哪个网站可以做卖房
  • php网站开发平台网站建设与管理 规划书
  • 网站删除关键词wordpress 文章新窗口打开
  • 合肥网站制作推广excel网站建设
  • 台州免费做网站房屋设计装修app
  • html5餐饮美食订餐微官网wap手机网站模板整站下载专业网页制作地址
  • 个人网站不能做淘宝客京东网站设计代码
  • 网站分为那几个模块一键生成app软件下载
  • 东莞企业网站后缀wordpress 移动模板
  • 百度网站提交了多久收录自建电商平台方案
  • 做拼图字的网站直播网站开发要多久
  • 直接做海报的网站网站模版带后台
  • 做爰午夜福利全过程视频网站网站做备案关停会显示什么
  • 网站建设发布实训总结资阳seo
  • 肇庆网站制作案例国内做网站网站代理怎么样
  • 恐龙网站建设单品网站模板
  • 滕州市中远建设工程公司网站首页商业网站设计方案
  • 网站开发 兼职项目东莞疾控最新通告今天
  • 盐城市亭湖区城乡建设局网站大连市平台网站
  • 网站备案类型及条件中山网站建设电话
  • 门户网站开发简历免费制作网站服务器
  • php网站配置说明python可以做网站前台么
  • 在哪个网站有兼职做移动互联网创业
  • 网站运维合同拼多多怎么设置关键词推广
  • 网站设计说明书800字商务型网站