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

为什么要推行政务公开网站建设德阳中恒网站建设

为什么要推行政务公开网站建设,德阳中恒网站建设,泰安房价网二手房出售信息,旅游企业网站建设CSDN的uu们#xff0c;大家好。这里是C入门的第七讲。 座右铭#xff1a;前路坎坷#xff0c;披荆斩棘#xff0c;扶摇直上。 博客主页#xff1a; 姬如祎 收录专栏#xff1a;C专题 目录 1. 知识引入 2. auto的使用 2.1 auto与指针和引用结合起来使用 2.2 在同一… · CSDN的uu们大家好。这里是C入门的第七讲。 · 座右铭前路坎坷披荆斩棘扶摇直上。 · 博客主页 姬如祎 · 收录专栏C专题 目录 1. 知识引入 2. auto的使用 2.1 auto与指针和引用结合起来使用 2.2 在同一行定义多个变量 2.3 auto不能推导的场景  2.3.1 auto不能作为函数的参数 2.3.2 auto不能直接用来声明数组 3. auto与范围for的结合 1. 知识引入 曾记否我们在用C语言实现基础的数据结构时会用到结构体来作为链表的一个节点像这样 struct ListNode {struct ListNode* next;int val; };int main() {struct ListNode node; }我们在使用这个节点的时候前面的变量类型就要写这么多是不是很烦很不舒服。当然你也可能会觉得这还好啊不久两个单词嘛。但是在C的后续学习过程中你可能会遇到这样的变量类型 #includemap #includestringint main() {std::mapstd::string, std::string::iterator a; } 这样看下来是不是觉得写变量的类型还是真的有些麻烦。不过聪明的UU可能想到可以用 typedef 给变量区别名来达到简化的效果非常棒但是呢C引入了一种更为简单的方式 C11中标准委员会赋予了auto全新的含义即auto不再是一个存储类型指示符而是作为一个新的类型指示符来指示编译器auto声明的变量必须由编译器在编译时期推导而得。 意思就是auto关键字能够自动推导变量的类型。当然你是用 auto 时编译器无法推出变量的类型就会报错的啦 int main() {auto a 10; //正确的写法auto e; //错误的写法 } 2. auto的使用 int main() {auto e; } 上面提到 这种写法是不正确的原因是什么呢来看看标准化的解释  使用auto定义变量时必须对其进行初始化在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。因此auto并非是一种“类型”的声明而是一个类型声明时的“占位符”编译器在编译期会将auto替换为变量实际的类型。 2.1 auto与指针和引用结合起来使用 用auto声明指针类型时用auto和auto*没有任何区别但用auto声明引用类型时则必须 加。 int main() {auto a 10;auto pa1 a;auto* pa2 a;auto ra a; //声明引用必须加cout typeid(a).name() endl;cout typeid(pa1).name() endl;cout typeid(pa2).name() endl;cout typeid(ra).name() endl;} 为什么声明引用必须加上呢原因很简单拿上面的例子来说不加只是声明了一个 int 类型的变量然后赋值为 a 的值。另外我们可以使用 typeid(变量).name() 来查看变量的类型。 2.2 在同一行定义多个变量 当在同一行声明多个变量时这些变量必须是相同的类型否则编译器将会报错因为编译 器实际只对第一个类型进行推导然后用推导出来的类型定义其他变量。 2.3 auto不能推导的场景  2.3.1 auto不能作为函数的参数 void Func1(auto b) //错误的写法 {}void Func2(auto a 10) //错误的写法 {} 代码会编译失败auto不能作为形参类型因为编译器无法对a的实际类型进行推导。缺省的参数也不行哦 2.3.2 auto不能直接用来声明数组 auto a[4] { 1,2,3,4 }; //错误的写法 3. auto与范围for的结合 在C98中我们要遍历数组会写出这样的代码 int main() {int a[10] { 0,1,2,3,4,5,6,7,8,9 };for (int i 0; i sizeof(a) / sizeof(a[0]); i)cout a[i] ; } 但是这种鞋码对于一个本身就有范围的集合来说我们还去自己写代码来指定他的范围就显得有些多余了甚至可能哈辉犯错误因此C11中引入了基于范围的for循环。for循环后的括号由冒号(:)分为两部分第一部分是范围内用于迭代的变量第二部分则表示被迭代的范围。 int main() {int a[10] { 0,1,2,3,4,5,6,7,8,9 };for (int i 0; i sizeof(a) / sizeof(a[0]); i)cout a[i] ;for (auto i : a)cout i ;for (int i : a)cout i ; } 上面的三种写法都是等效的可以使用auto来自动推导得到的变量类型。 注意与普通循环类似可以用continue来结束本次循环也可以用break来跳出整个循环。 你如果要改变原数组的值你可以使用引用哦像下面这样 int main() {int a[10] { 0,1,2,3,4,5,6,7,8,9 };for (int i 0; i sizeof(a) / sizeof(a[0]); i)a[i] 1;for (auto i : a)i 1;for (int i : a)i 1; } 范围for循环的底层是使用迭代器来完成遍历的操作的。至于迭代器是个啥后面会讲到
http://www.hkea.cn/news/14411420/

相关文章:

  • 繁体版 企业网站中卫市住房和城乡建设局网站
  • 网站建设与维护的内容百度站长平台网站改版工具
  • 怎样建网站卖东西wordpress添加评论框
  • 网站开发技术留言如何制作一个二维码
  • 建设集团网站方案设计企业网站策划流程
  • 靖江seo收费贵吗百度seo网站排名
  • 西安网站制作计划一元购物网站怎么做
  • 北京个人制作网站免费推广预期效果怎么写
  • 电脑上怎么做网页seoul是韩国哪个城市
  • 消费全返的 微网站开发东莞市传送机技术支持 网站建设
  • 个人网站logo标准品购买网站
  • 做笑话网站无极分期网站
  • 购买腾讯备案网站app下载我的订单
  • 县级门户网站建设的报告微信营销教程
  • 昆明专业网站建设的公司徐州哪有做网站的
  • 微页制作平台网站建设网站建设设计模板
  • 天津平台网站建设推荐东港区建设局网站
  • 网站 微站建设排名网站建设v
  • 网站文件夹权限win7 发布asp网站
  • 网站建设微站重庆做木门网站公司
  • 南京高端网站建设大气的化妆品网站名
  • 个人建站免费服务器郑州网站托管助企
  • 搭建网站 优帮云网站打开加速
  • asp.net网站建设ppt邯郸做网站找哪家好
  • 怎么制作网站域名wordpress 在线阅读pdf
  • 长葛哪里有做网站的淮北做网站电话
  • 可以做微课PPT模板 网站vs2013 网站开发
  • 05网站做网站有什么关于财务的问题
  • 网络建站工具wordpress没有图片
  • 建设网站能自学吗jquery上传wordpress