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

城市联盟网站怎么做影视网站怎么做内链

城市联盟网站怎么做,影视网站怎么做内链,国家认可提升学历正规机构,北京网站开发公司大全1.c的发展历史概述 1.1.什么是c C语言是结构化和模块化的语言#xff0c;适合处理较小规模的程序。对于复杂的问题#xff0c;规模较大的 程序#xff0c;需要高度的抽象和建模时#xff0c;C语言则不合适。为了解决软件危机#xff0c; 20世纪80年代#xff0c; 计算机…1.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的历史发展过程 1979年C语言的扩展本贾尼 Bjarne Stroustrup 在贝尔实验室工作时开始着手开发一种能够支持面向对象编程的 C 语言扩展。这一过程中他设计了 C 的最早版本。 1983年正式命名为C Bjarne Stroustrup 在正式发布的 C 编程语言手册中首次使用了 C 这个名称。这个名字表达了 C 是 C 语言的一个进化并加上了一些面向对象编程的概念。 1985年C 1.0 发布 发布了 C 的第一个正式版本包括类、继承、函数重载等基本的面向对象特性。 1989年C 2.0 发布 引入了多重继承、抽象类、静态成员函数等特性。 1990年ANSI C 标准 美国国家标准协会ANSI发布了第一个 C 标准该标准在1998年被国际标准化组织ISO接受。 1998年C 98 标准发布 ISO 发布了 C 的第一个国际标准也称为 C 98。这个标准包括了许多新特性如模板、命名空间、bool 类型等。 2003年C 03 标准发布 对 C 进行了一些小的修订但主要是纠正和澄清了 C 98 中的一些问题。 2011年C 11 标准发布 C 11 引入了许多新特性包括自动类型推断、智能指针、lambda 表达式、范围循环等使 C 编程更加现代化。 2014年C 14 标准发布 作为对 C 11 的小规模增强引入了一些新特性如二进制文字、泛型 Lambda 表达式等。 2017年C 17 标准发布 引入了一些新的语言特性和库特性如结构化绑定、文件系统库、并发库等。 2020年C 20 标准发布 C 20 是继 C 17 之后的新标准引入了一系列新特性如概念、范围语法、协程等。 1.3.c的重要性 高性能 C 是一门编译型语言直接翻译为机器代码因此具有高性能。它允许对底层硬件进行更好的优化使得 C 在系统编程、游戏开发等对性能要求较高的领域得到广泛应用。 面向对象编程 C 支持面向对象编程OOP使得代码能够更好地组织和管理。面向对象的特性如封装、继承、多态等使得代码更具可维护性和可扩展性。 跨平台性 C 的代码可移植性很强可以在不同的操作系统和硬件平台上运行。这使得 C 成为开发跨平台应用和系统的重要选择。 系统级编程 C 被广泛用于系统级编程如操作系统、驱动程序和嵌入式系统的开发。其直接的内存控制和硬件访问能力使其成为处理底层任务的理想语言。 游戏开发 许多游戏引擎和游戏开发框架都是使用 C 编写的。C 提供了对图形和音频硬件的直接控制以及对性能的高度优化适合开发需要实时图形和音频处理的游戏应用。 大型软件项目 C 适用于大型软件项目的开发。其丰富的功能、模块化的设计和强大的标准模板库STL使得开发人员能够更容易地管理复杂的代码库。 嵌入式系统 C 被广泛用于嵌入式系统的开发因为它提供了对硬件的底层访问、高效的代码执行以及对资源的有效管理。 科学计算和图形学 C 在科学计算和图形学领域得到广泛应用。它的性能和直接的硬件访问使其成为处理大规模计算和图形处理任务的理想选择。 补充 值得一提的是c兼容c语言换句话来说在.cpp文件中也可以写纯c语言的代码这是没有问题的。但是如果想使用c的一些库函数就必须加入相应的头文件。 2.c关键字 C语言32个关键字而C总计有63个关键字。 3.命名空间 命名空间Namespace是 C 中一种用于组织代码和防止命名冲突的机制。它允许开发者将代码元素如变量、函数、类等放置在一个特定的命名空间中以避免与其他部分的代码发生冲突。通过使用命名空间可以提高代码的可维护性和可读性。 观察以下代码 #include stdio.h #include stdlib.h int a 10; int a 10; // 当我们定义两个同名变量的时候如果这两个变量在同一域中c语言就会报错 int main() {printf(%d\n, a);return 0; } 现实中由于一个项目往往是由多个人一起完成的如果两个人没有沟通好命名规则那么很容易使用到同名的变量或者是同名的函数这样对于多人合作完成一个项目来说是不利地。所以呢c就引入了命名空间这一概念。使用命名空间的目的是对标识符的名称进行本地化以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。 使用命名空间就可以解决同名冲突问题  int a 10; namespace myname {int a 10; } int main() {printf(%d\n, myname::a);//命名空间的使用规则在::右边声明空间域表明该变量在哪里去找return 0; } 3.1c/c的变量搜索规则 一、对于c: 1、在局部域中搜索 2、局部域中没有就再去全局域中搜索 二、对于c: 1、看变量左边有没有::。如果有就去::左边的命名空间中去找默认是全局域 例如 std::a就是去名为std的空间里去找a。如果是::a也就是::左边什么都不加,那就是去全局域中找a。 2、去局部域中搜索 3、去全局域中搜索 3.2命名空间定义 定义命名空间需要使用到namespace关键字 后面加命名空间的名字然后用一对{}括起来。{}中所有的变量或者函数都是该命名空间的成员。 namespace myname {// 命名空间中可以定义变量/函数/类型int rand 10;int Add(int left, int right){return left right;}//注意一个命名空间就定义了一个新的作用域命名空间中的所有内容都局限于该命名空间中struct Node{struct Node* next;int val;}; } 观察以下代码 #include stdio.h #include stdlib.h #includeiostream namespace s1 {int A(int a, int b){return a b;} } namespace s2 {int A(int a, int b) {return a * b;} } int main() {printf(%d\n, s1::A(1 , 2));printf(%d\n, s2::A(2, 3));return 0; } 我们可以看到虽然s1和s2命名空间里面都有一个Aint,int函数但是各自实现的功能不一样在s1命名空间里实现两数相加在s2命名空间里面实现两数相乘。 3.3命名空间使用 命名空间的使用有三种方式 1、加命名空间名称及作用域限定符 int main() { printf(%d\n, N::a); return 0; } 2、使用using将命名空间中某个成员引入 using s1::a的意思是将命名空间 s1 中的名称 a 引入到当前的作用域使得在当前作用域中可以直接使用 a 而不需要通过命名空间限定符。 思考为什么输出a为10. 解释 在这个例子中using s1::a; 表示在 main 函数的作用域中引入了 s1 命名空间中的名称 a。因此我们可以直接使用 a而不需要写成 s1::a.又根据变量名的搜索原则先在局部域搜索发现局部域有a,那就不用在全局域中去搜索。这也是为什么输出的是10而不是1000. 3、使用using namespace 命名空间名称 引入 跟第二点差不多using namespace s1的意思是将命名空间 s1 中所有变量引入到当前的作用域。 思考 以下代码为什么会报错 4.c输入和输出 认识一门语言首先就要认识它的输入输出的方式。对于c来说它也有属于自己的输入输出方式。 #includeiostream//c标准输入输出库 // std是C标准库的命名空间名C将标准库的定义实现都放到这个命名空间中 using namespace std; int main() { coutHello world!!!endl; return 0; } 说明 1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时必须包含 iostream 头文件以及按命名空间使用方法使用std。 2. cout和cin是全局的流对象endl是特殊的C符号表示换行输出他们都包含在包含 iostream 头文件中。 3. 是流插入运算符是流提取运算符。 4. 使用C输入输出更方便不需要像printf/scanf输入输出时那样需要手动控制格式。 C的输入输出可以自动识别变量类型。 5.std命名空间 std 是C标准库中定义的一个命名空间。标准库是C提供的一组通用的功能和工具包括输入输出、容器、算法、字符串处理等。这些功能在 std 命名空间中组织以便在用户的程序中使用。 1. 在日常练习中建议直接using namespace std即可这样就很方便。 2. using namespace std展开标准库就全部暴露出来了如果我们定义跟库重名的类型/对 象/函数就存在冲突问题。该问题在日常练习中很少出现但是项目开发中代码较多、规模 大就很容易出现。所以建议在项目开发中使用像std::cout这样使用时指定命名空间 using std::cout展开常用的库对象/类型等方式。  这也是为什么我们看到有的人用std::cout输出而不是cout 6.缺省参数 6.1缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时如果没有指定实参则采用该形参的缺省值否则使用指定的实参。 举例 6.2缺省参数分类 缺省参数分为半缺省参数和全缺省参数。半缺省参数就是函数中参数的缺省数目小于参数个数也就是说不是所有的参数都有缺省值我们把这种不完全缺省的函数叫做半缺省。相对应地所有参数都有缺省值就叫做全缺省参数。 全缺省参数 void Func(int a 1, int b 1, int c 1) {}//所有参数都设置缺省值全缺省参数 半缺省参数 void Func(int a , int b1 , int c1) {}//不是所有参数都设置缺省值半缺省参数 6.3注意 1.如果是半缺省参数缺省值必须从右往左依次来给不能间隔着给 2.缺省参数不能在函数声明和定义中同时出现 3.缺省值必须是常量或者是全局变量 4.c语言不支持编译器不支持 6.3.1为什么不能间隔着给呢 原因是编译器需要能够准确地解析函数调用中各个参数的位置而半缺省参数的提供是按照参数列表的最右端开始的。如果允许间隔着给参数赋值编译器将难以判断参数的具体位置。为了避免这种歧义C 编译器规定了半缺省参数必须按照声明的顺序提供。这样可以确保在函数调用时参数的位置是明确的编译器能够正确地解析。 举例 6.3.2 为什么缺省参数不能在定义和声明中同时出现 避免二义性Ambiguity 如果函数的声明和定义中提供了不同的默认参数值编译器无法确定在函数调用时应该选择哪个默认值。这会导致编译错误。 为了避免这些问题C 编译器规定了默认参数只能在函数的声明或者定义中的其中一个地方提供。一般来说建议在函数的声明中提供默认参数而在函数的定义中不提供默认参数这样可以使得函数的接口更清晰和一致。 6.3.3那么缺省参数应该在函数声明设置还是在函数定义设置呢 观察以下代码 以上代码将函数定义和函数声明分别放在a.cpp中和test.h中main函数放在main.cpp文件中调用Func函数。我们发现函数声明没有给缺省参数函数定义给了运行Func函数却报错了。 报错信息 函数调用参数太少。可是按照我们设置缺省值的目的虽然没有传参但不应该使用的是默认值嘛 也就是说此时设置的缺省值并没有用。为什么 原因在于我们的函数声明放在了.h的头文件里而在编译器的预编译阶段会将头文件的内容展开。test.h文件展开时只是展开了Func函数的声明该声明设置了三个整型参数且没有缺省值。当系统在调用Func函数时发现此时的Func函数需要三个整型参数并且没有缺省所以就会立即报错并不会调用a.cpp文件里的Func函数。这里关于编译器预编译以及编译的几个阶段有不了解或者是想要了解的同学可以看我之前写的博客。 c语言的程序环境和预处理一眼丁真_c语言环境打击那-CSDN博客 所以缺省参数不能在函数声明和定义中同时出现并且应该在声明中设置缺省值而不是在定义中。 虽然可以在main函数中定义Func函数但是为了更好的维护代码一般我们不会这么做。
http://www.zqtcl.cn/news/110698/

相关文章:

  • p2p网站建设cms一键生成图片
  • 甘肃省第八建设集团公司网站能够做物理题的网站
  • 团购网站建设方案建筑工程网校官网
  • 佛山建站网站模板小公司管理方法
  • 常德住房和城乡建设局网站做风险代理案源的网站
  • 手机网站开发人员选项wordpress加载媒体库
  • 做钓鱼网站用哪种编程语言张家界有实力seo优化费用
  • 如何做一个主题网站做网站必须有框架么
  • 建设网站需要什么知识上海高端网页设计
  • 电子商务网站建设基本流程公司网站建设平台
  • 域名没过期 网站打不开怎么办素马设计顾问讲解价格
  • 怎么做非法彩票网站贵州网站开发哪家便宜
  • 青岛市医疗保险网站wordpress七牛云
  • 哪个浏览器可以做网站查询网站的外链
  • 浅析社区网站的建设有了网站源码 怎么建设网站
  • 苏州网站排名优化系统网页设计师
  • 网站开发定制推广杭州河南省的网页制作
  • 北京随喜设计网站国内好的seo网站
  • 网站中宣传彩页怎么做的网站建设评估及分析
  • 东莞php网站建设素材网站php程序源码
  • 怎么做免费视频网站模版网站可以做seo吗
  • 备案期间怎么做网站微动漫怎么制作
  • 精美的php个人网站源码公司网站建设方案书
  • 站长如何做视频类网站如何诊断网站
  • 个人怎么做网站优化在线做印章的网站
  • 自己做的小网站市场营销互联网营销
  • 程序员会搭建非法网站吗永久免费生成app网页
  • 重庆渝北做网站哪里便宜浙江建设职业学校网站
  • 移动端网站开发介绍品牌宣传网站
  • 做文案图片上什么网站seo具体优化流程