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

网站建设全攻略龙湖镇华南城网站建设

网站建设全攻略,龙湖镇华南城网站建设,科技有限公司是干什么的,百度导航是哪个国家的公司目录 一、C的背景及简要介绍1.1 什么是C1.2 C发展史1.3 C的重要性 二、C关键字三、命名空间2.1 命名空间定义2.2 命名空间使用 四、C输入 输出 一、C的背景及简要介绍 1.1 什么是C C语言是结构化和模块化的语言#xff0c;适合处理较小规模的程序。对于复杂的问题的背景及简要介绍1.1 什么是C1.2 C发展史1.3 C的重要性 二、C关键字三、命名空间2.1 命名空间定义2.2 命名空间使用 四、C输入 输出 一、C的背景及简要介绍 1.1 什么是C C语言是结构化和模块化的语言适合处理较小规模的程序。对于复杂的问题规模较大的程序需要高度的抽象和建模时C语言则不合适。为了解决软件危机 20世纪80年代 计算机界提出了OOP(object oriented programming面向对象)思想支持面向对象的程序设计语言应运而生。 在1982年Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念发明了一种新的程序语言。为了表达该语言与C语言的渊源关系命名为C。因此C是基于C语言而产生的它既可以进行C语言的过程化程序设计又可以进行以抽象数据类型为特点的基于对象的程序设计还可以进行面向对象的程序设计。 1.2 C发展史 1979年贝尔实验室的本贾尼等人试图分析unix内核的时候试图将内核模块化于是在C语言的基础上进行扩展增加了类的机制完成了一个可以运行的预处理程序称之为C with classes。语言的发展就像是练功打怪升级一样也是逐步递进由浅入深的过程。我们先来看下C的历史版本。 阶段内容C with classes类及派生类、公有和私有成员、类的构造和析构、友元、内联函数、赋值运算符重载等C1.0添加虚函数概念函数和运算符重载引用、常量等C2.0更加完善支持面向对象新增保护成员、多重继承、对象的初始化、抽象类、静态成员以及const成员函数C3.0进一步完善引入模板解决多重继承产生的二义性问题和相应构造和析构的处理C 98C标准第一个版本绝大多数编译器都支持得到了国际标准化组织(ISO)和美国标准化协会认可以模板方式重写C标准库引入了STL(标准模板库)C 03C标准第二个版本语言特性无大改变主要修订错误、减少多异性C 05C标准委员会发布了一份计数报告(Technical ReportTR1)正式更名C0x即计划在本世纪第一个10年的某个时间发布C 11增加了许多特性使得C更像一种新语言比如正则表达式、基于范围for循环、auto关键字、新容器、列表初始化、标准线程库等C 14对C11的扩展主要是修复C11中漏洞以及改进比如泛型的lambda表达式auto的返回值类型推导二进制字面常量等C 17在C11上做了一些小幅改进增加了19个新特性比如static_assert()的文本信息可选Fold表达式用于可变的模板if和switch语句中的初始化器等C 20自C11以来最大的发行版引入了许多新的特性比如模块(Modules)、协程(Coroutines)、范围(Ranges)、概念(Constraints)等重大特性还有对已有特性的更新比如Lambda支持模板、范围for支持初始化等C 23制定ing C还在不断的向后发展。但是现在公司主流使用还是C98和C11所以不用追求最新重点将C98和C11掌握好等日后随着对C理解不断加深有时间可以去琢磨下更新的特性。 1.3 C的重要性 下图数据来自TIOBE编程语言社区2024年最新的排行榜在30多年的发展中C/C几乎一致稳居前5。 TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标每月更新这份排行榜排名基于互联网上有经验的程序员、 课程和第三方厂商的数量。排名使用著名的搜索引擎诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等进行计算。 注意排名不能说明那个语言好那个不好每门编程语言都有适应自己的应用场景。 二、C关键字 C总计63个关键字C语言32个关键字 三、命名空间 在C/C中变量、函数和后面要学到的类都是大量存在的这些变量、函数和类的名称将都存在于全局作用域中可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。 包含头文件 stdlib.h后会展开此文件此在此头文件中有一个全局的函数名为rand()会与此处变量的命名造成冲突。还有一点在不同的域中是可以定义同名变量的。一般在大型项目中如果没有命名空间那么不同程序员负责的不同模块之间就极有可能会定义出相同名字的变量或函数名。 #include stdio.h #include stdlib.h int rand 10; //C语言没办法解决类似这样的命名冲突问题所以C提出了namespace来解决 int main() {printf(%d\n, rand);return 0;}// 编译后后报错error C2365: “rand”: 重定义以前的定义是“函数”2.1 命名空间定义 定义命名空间需要使用到namespace关键字后面跟命名空间的名字然后接一对{}即可{}中即为命名空间的成员如下 //1. 正常的命名空间定义。一般开发中是用项目名字做命名空间名 namespace Named {// 命名空间中可以定义变量/函数/类型int rand 10;int n 20;int Add(int l, int r){return l r;}struct Node{struct Node* next;int val;}; }int main() {printf(%p\n, rand); //头文件stdlib.h 中的 rand() 函数。printf(%d\n, Named::rand); //作用域Named 中的变量 rand。struct Named::Node phead;return 0; }如果需要访问指定的域中的变量现在变量前加上域名::变量名来访问::– 域作用限定符其中结构体较特殊例struct Named::Node phead; 命名空间还有以下特性1. 命名空间可以嵌套 2. 同一个工程中允许存在多个相同名称的命名空间编译器最后会合成为同一个命名空间。// ps一个工程中的test.h和上面test.cpp中两个相同命名空间会被合并成一个(前提是后者引用前者#include test.h)。 注意一个命名空间就定义了一个新的作用域命名空间中的所有内容都局限于该命名空间中。 C中的四种域全局域局部域命名空间域类域。其中全局域和局部域会影响生命周期和访问而命名空间域只会影响访问。 编译器搜索原则 当不指定域时先到当前局部域查找然后再到全局域当指定域时就直接去指定域查找若未找到则报错 2.2 命名空间使用 命名空间的使用有三种方式 加命名空间名称及作用域限定符 //以 2.1 中的作用域为例 int main() {printf(%d\n, Named::rand);return 0; }使用using将命名空间中某个成员引入 using Named::n; int main() {printf(%d\n, Named::n);printf(%d\n, n);return 0; }使用using namespace 命名空间名称 引入(展开) using namespce Named; int main() {printf(%d\n, Named::n);printf(%d\n, n);Add(10, 20);return 0; }此方法相当于将原来不能直接搜索到的变量在域中搜索需指定域放到全局了此时无需再指定域名 例using namespace std;std是所有C库命名空间。若需展开要注意的是展开前在此命名空间中不能有和全局命名相同的变量(在一些大型项目中要避免展开命名空间域以免造成不必要的命名冲突)。 与头文件展开不同的是头文件展开是在预处理阶段相当于拷贝 四、C输入 输出 下面便通过我们的第一个C程序展开说明简述。 #includeiostream // std是C标准库的命名空间名C将标准库的定义实现都放到这个命名空间中 using namespace std;int main() {cout Hello world!!! endl;return 0; }说明 使用cout标准输出对象(控制台) 和cin标准输入对象(键盘) 时必须包含 iostream 头文件以及按命名空间使用方法使用std。cout和cin是全局的流对象endl是特殊的C符号表示换行输出他们都包含在包含 iostream 头文件中。是流插入运算符是流提取运算符。使用C输入输出更方便不需要像printf/scanf输入输出时那样需要手动控制格式。C的输入输出可以自动识别变量类型。 #include iostream using namespace std; int main() {int a;double b;char c;// 可以自动识别变量的类型cin a;cin b c;cout a endl;cout b c endl;return 0; }实际上cout和cin分别是ostream和istream类型的对象和也涉及运算符重载等知识这里只是简单学习他们的使用。后续还会更深入的学习IO流用法及原理。如下操作符被重载了1. 左移操作 2. 流插入。 两种功能重载操作后期会详解。 int main() {int i 1;i i 2; // 1.左移操作cout i: i endl; //2. 流插入return 0; }注意早期标准库将所有功能在全局域中实现声明在.h后缀的头文件中使用时只需包含对应头文件即可后来将其实现在std命名空间下为了和C头文件区分也为了正确使用命名空间规定C头文件不带.h旧编译器(vc 6.0)中还支持iostream.h格式后续编译器已不支持因此推荐使用iostream std的方式。 std命名空间的使用惯例std是C标准库的命名空间如何展开std使用更合理呢 在日常练习中建议直接using namespace std即可这样就很方便。using namespace std展开标准库就全部暴露出来了如果我们定义跟库重名的类型/对象/函数就存在冲突问题。该问题在日常练习中很少出现但是项目开发中代码较多、规模大就很容易出现。所以建议在项目开发中使用像std::cout这样使用时指定命名空间 using std::cout展开常用的库对象/类型等方式。
http://www.w-s-a.com/news/608393/

相关文章:

  • 大兴模版网站建设公司企业网站备案案例
  • h5建站是什么wordpress客户端 接口
  • 济南自适应网站建设制作软件下载
  • 望都网站建设抖音广告投放收费标准
  • 网站制作软件排行榜上海市网站建设公司58
  • 什么是网站风格中国工商网企业查询官网
  • 专业建设专题网站wordpress lnmp wamp
  • 环保网站 下载页网站
  • 开源小程序模板江门关键词优化排名
  • 网站开发 知乎房地产型网站建设
  • 买完域名网站怎么设计wordpress 纯代码
  • 公司网站怎么做百度竞价宁波网络公司哪家好
  • 河西网站建设制作微信分销系统多层
  • 网站制作完成后应进入什么阶段石家庄网站建设找哪家好
  • 南通外贸网站推广自在源码网官网
  • 个人网站模板html下载餐饮vi设计案例欣赏
  • 高端网站建设wanghess网站开发售后服务承诺
  • 江西网站建设费用企业网站推广的方法有( )
  • 中国十大网站开发公司企业网站建设的要素有哪些
  • 网站防站做网站吉林
  • 嘉定区网站建设公司企业信息公示查询系统官网
  • 一个具体网站的seo优化产品介绍网站模板下载地址
  • 怎么做网站在网上能搜到你哈尔滨网站建立公司
  • 做家旅游的视频网站上海百度公司总部
  • 微信小程序公司网站怎么制作区块链平台定制开发
  • 网站资质优化ip地址域名解析
  • 如何搭建个人网站ps做网站首页怎么运用起来
  • 中小企业商务网站建设wordpress 安全加固
  • asp网站开发设计文档php建设网站怎么用
  • 服装公司网站建设需求分析报告seo搜索引擎优化实战