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

天津网站维护竞价排名什么意思

天津网站维护,竞价排名什么意思,wordpress上传都图片不显示图片,长春网站建设880元前言 本篇博客讲解一下c得入门基础 #x1f493; 个人主页#xff1a;普通young man-CSDN博客 ⏩ 文章专栏#xff1a;C_普通young man的博客-CSDN博客 ⏩ 本人giee:普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见#x1f4dd; #x1f389;欢迎大家点赞得入门基础 个人主页普通young man-CSDN博客 ⏩ 文章专栏C_普通young man的博客-CSDN博客 ⏩ 本人giee:普通小青年 (pu-tong-young-man) - Gitee.com       若有问题 评论区见 欢迎大家点赞收藏⭐文章 目录 C发展历史 起源与初期阶段1979-1985 标准化与C981990s 技术进步与C112011年 进一步的现代化C14至C20 当前与未来 c版本 c基础 命名空间 定义 ::操作符被称为作用域解析操作符 命名空间的嵌套定义 多文件在一个命名空间 命名空间的展开 C的输入输出 输入输出流I/O Stream 缺省函数 定义 代码举例 重载函数 引用 引用的概念和意义 引用的特性 引用的使用 C发展历史 C是一种强大的多范式编程语言它的历史可以追溯到1979年由丹麦计算机科学家Bjarne Stroustrup在贝尔实验室开始研发。以下是C发展的主要里程碑 起源与初期阶段1979-1985 1979年Bjarne Stroustrup开始基于C语言开发一种新的语言最初称为“C with Classes”目的是结合C语言的高效性和面向对象编程的特性。 1983年语言正式更名为C名称由Rick Mascitti建议灵感来源于C语言中的“”运算符象征着对C语言的增强。此时C已经成为一种独立的语言不仅仅只是C语言的简单扩展。 1985年首个正式版本的C发布包含了一些基本的面向对象特性如类和继承。 标准化与C981990s 1998年C的第一个国际标准ISO/IEC 14882:1998发布通常被称为C98。这个标准引入了模板、命名空间、异常处理等特性极大地增强了语言的功能。 技术进步与C112011年 2011年C11标准发布这是一个重要的里程碑引入了诸如智能指针、lambda表达式、自动类型推导、范围for循环和并发编程支持等现代特性显著提高了C的易用性和安全性。 进一步的现代化C14至C20 2014年C14标准发布它对C11进行了细化和补充提供了更多的便利性和语言一致性。 2017年C17标准发布引入了变量模板、文件系统库、并行算法等功能继续推动C向现代化方向发展。 2020年C20标准发布它包含了概念Concepts、模块Modules、更大的类型安全性和更多实用工具使C更加现代化和易于使用。 当前与未来 C20之后C23标准预计在2023年发布继续增强语言特性和库包括改进的概念支持、更好的错误处理机制、以及对模块系统的持续改进。 C老登Bjarne Stroustrup(本贾尼·斯特劳斯特卢普这个翻译的名字不 同的地⽅可能有差异)在⻉尔实验室从事计算机科学和软件⼯程的研究⼯作 这老登长这样 c版本 c的相关参考文档 cplusplus.com - C资源网络   cppreference.com   //官方文档 C 参考手册 - cppreference.com  //官方文档汉化 c基础 c的第一个程序 #includeiostream//标准IO(输入/输出)流using namespace std;//标准命名空间int main() {cout Hello C Plus Plus endl;return 0 }ok现在我们已经掌握了c的输出了 命名空间 在C/C中变量、函数和后⾯要学到的类都是⼤量存在的这些变量、函数和类的名称将都存在于全 局作⽤域中可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化以避免命名 冲突或名字污染namespace关键字的出现就是针对这种问题的。 举一个C语言的例子来对比 #includestdio.h #includestdlib.h int rand 10; int main() {printf(%d\n,rand);return 0; }为什么会报rand重定义的错误 这个是#includestdlib.h中的就是因为有名字重复所以有时候你做项目的突然需要一个头文件的时候突然报了个重定义错误或许你会说我不定义全局变量就行了但是这是避免不了的你可以去看一下我的项目专栏 这种问题后来就被我们的c老登给优化了于是就出现了namespace(命名空间)那我用命名空间写一下 #includeiostream #includestdlib.h namespace YM{int rand 10; }int main() {printf(%d\n, YM::rand);} 可以看到我这里自己定义了一个命名空间为什么这里就不会有影响了嘞 定义 命名空间的声明语法非常简单通常形式如下 namespace 命名 {// 命名空间内的定义 } 除了函数局部域、全局域、命名空间域和类域之外C中还有文件作用域、命名空间作用域、类作用域等它们共同构成了C的命名系统。每个域不仅影响着编译器如何解析标识符还可能影响到变量的生命周期和可见性但需要注意的是命名空间域和类域本身并不改变其内部变量的生命周期。 这里提到的域我相信大家应该都懂作用域不一样所以就不会一样YM::rand 就是访问YM这个命名空间域里面的rand ::操作符被称为作用域解析操作符 全局作用域解析当你在一个局部作用域如函数体内中想要明确引用全局作用域的某个标识符如全局变量、函数等时你可以使用::来指明你要访问的是全局作用域中的那个标识符而不是当前局部作用域中可能存在的同名标识符。例如 #includeiostreamusing namespace std; int x 20; int main() {int x 10;cout ::x endl;return 0; } 这里加了域操作符但是前面啥也不加就是访问的全局域 命名空间的嵌套定义 #includeiostreamnamespace YM {int x 10;namespace xy {int x 20;}} namespace tmp {namespace x {int rand 20;int sum(int x, int y) {return x y;}}namespace y {int rand 30;int sum(int x, int y) {return x * y;}} } using namespace std; int main() {cout YM::x endl;cout YM::xy::x endl;cout tmp::x::rand endl;cout tmp::y::rand endl;cout tmp::x::sum(3, 2) endl;cout tmp::y::sum(3, 2) endl;return 0; }大家可以把这个代码拷贝过去自己感受一下 多文件在一个命名空间 我们可以看到这里我将栈和队列都放在一个命名空间里面 从这里你是不是有一种封装数据结构的感觉,这里就可以证明我们如果在公司里面将我们写的程序弄到一个namespace1空间中然后上传到一个namespace2里然后我的同事用同样的方法也可以进行上传到namespace2因为域之间互不干扰这样就会非常爽 命名空间的展开 这个是标准命名空间的展开 我们也可以自己定义 不展开 展开 你可以看出来它展开和不展开的区别 可读性和清晰度不展开命名空间意味着你需要显式地指定元素的来源这可以增加代码的可读性和清晰度尤其是在多个命名空间中使用相同名称的情况下。 避免命名冲突展开命名空间可能导致与现有命名冲突特别是与标准库中的命名冲突。例如std命名空间包含了C标准库的大部分功能如果使用using namespace std;你可能会意外地覆盖其他命名空间中的同名元素。 代码维护不展开命名空间可以使代码更易于维护因为你总是知道一个特定标识符的确切来源。 性能虽然在现代编译器中性能差异可能微乎其微但在理论上使用作用域解析操作符可能会稍微增加编译时间因为它需要更多的解析步骤。 C的输入输出 输入输出流I/O Stream 概述iostream 是标准的输入输出流库定义了标准的输入、输出对象简化了数据的输入输出处理。 std::cinistream 类的对象主要面向窄字符类型为 char的标准输入流用于从标准输入设备如键盘读取数据。 std::coutostream 类的对象主要面向窄字符的标准输出流用于向标准输出设备如显示器发送数据。 std::endl是一个控制字符用于流插入输出时相当于插入一个换行字符并刷新缓冲区确保数据立即显示。 运算符 和 分别是流提取和流插入运算符在 C 中用于输入输出不同于 C 语言中的位运算左移和右移。 优势C 的输入输出操作更加便捷自动识别变量类型无需手动指定格式支持自定义类型对象的输入输出体现了面向对象的特性。 面向对象特性IO流涉及类和对象、运算符重载、继承等面向对象的概念这些概念将在后续学习中深入探讨。 命名空间std 是 C 标准库所在的命名空间cout、cin、endl 等都属于此命名空间。在日常练习中常用 using namespace std; 来简化调用但在实际项目中为了避免命名冲突建议显式使用 std:: 前缀。 兼容性注意尽管未明确包含 cstdio提供 printf 和 scanf在某些编译器环境下如 VS 系列它们可能被隐式包含但在其他编译器上可能需要显式包含才能避免错误。 注意 对cout的解释这里里面的函数重载我待会解释 流插入运算符 当你使用 cout 输出数据时实际上是将数据通过流插入运算符 插入到 cout 流中。例如cout 123; 就是将整数 123 插入到 cout 流中。 类型转换cout 在背后做了大量的工作将你提供的数据类型转换成文本格式。例如如果你有一个整数 123cout 会将其转换成字符串 123然后再输出到屏幕上。 函数重载cout 的这种能力是通过函数重载实现的。cout 实际上是一个 ostream 类型的对象ostream 类为各种数据类型重载了 运算符。这意味着 运算符根据左右两边的数据类型会选择正确的重载版本来执行正确的转换和输出操作。 缓冲与刷新cout 输出的数据会被暂时存储在一个缓冲区中直到缓冲区满或者程序显式要求刷新如使用 endl。这有助于提高性能因为一次性写入大量数据比频繁写入单个小数据块效率更高。 这边我就不和大家说那些没用的废话直接上代码我在代码下面放个解析 #includeiostream using namespace std;int main() {//一int a 10;cin a;cout a endl;//二int b, c, d;cin b c ;cout b endl c endl;cout b c endl;} 解析 #includeiostream 这行代码包含了标准输入输出库iostream使得程序可以使用输入输出相关的功能如cin和cout。 1using namespace std; 这行代码告诉编译器使用std命名空间这样我们就可以直接使用cout和cin等函数而不需要每次都写std::cout或std::cin。 1 int a 10; 声明了一个整型变量a并初始化为10。 1 cin a; 从标准输入读取一个整数并将其存储在变量a中。这会覆盖之前给a的初始值10。 1 cout a endl; 输出变量a的值到标准输出通常是屏幕并在后面添加一个换行符。 1 int b, c, d; 声明了三个整型变量b、c和d。 1 cin b c ; 从标准输入读取两个整数分别存储在变量b和c中。 1 cout b endl c endl; 输出变量b和c的值每个值后都加上一个换行符使得b和c的值在不同的行显示。 1 cout b c endl; 输出变量b和c的值中间用空格分隔然后在最后添加一个换行符。 缺省函数 定义 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时如果没有指定实参 则采⽤该形参的缺省值否则使⽤指定的实参缺省参数分为全缺省和半缺省参数。有些地⽅把 缺省参数也叫默认参数全缺省就是全部形参给缺省值半缺省就是部分形参给缺省值。C规定半缺省参数必须从右往左 依次连续缺省不能间隔跳跃给缺省值。带缺省参数的函数调⽤C规定必须从左到右依次给实参不能跳跃给实参。函数声明和定义分离时缺省参数不能在函数声明和定义中同时出现规定必须函数声明给缺省 值。 代码举例 这里我们缺省了1这个参数半缺省 这边我还可以直接缺省两个参数全缺省 你不要觉得这个没有用比如你在开空间扩容的时候你就可以给一个默认值就会方便很多如果突然需要一个很大的空间你直接传个值过去就覆盖掉默认值 重载函数 C⽀持在同⼀作⽤域中出现同名函数但是要求这些同名函数的形参不同可以是参数个数不同或者 类型不同。这样C函数调⽤就表现出了多态⾏为使⽤更灵活。C语⾔是不⽀持同⼀作⽤域中出现同 名函数的。 这个在C语言就是没有的你们会发现有了这个重载函数会非常爽在C语言中如果我们换了一个类型我们就的重新命一个函数不支持一个函数名支持多个种类型 在定义重载函数一定保持参数顺序相同不然就会报错这也是老登规定的没有为什么 返回值不同不能作为重载条件因为调⽤时也⽆法区分 我们来看一个纯在歧义的重载函数这种以后千万别写我感觉有一点画蛇添足 不传参会报错因为第一个无参第二个是缺省函数 当我给他传上参数他又满血复活了哈哈哈 引用 引用的概念和意义 引⽤不是新定义⼀个变量⽽是给已存在变量取了⼀个别名编译器不会为引⽤变量开辟内存空间 它和它引⽤的变量共⽤同⼀块内存空间。⽐如⽔壶传中李逵宋江叫铁⽜江湖上⼈称⿊旋 ⻛林冲外号豹⼦头 类型 引用别名 引用对象 C中为了避免引⼊太多的运算符会复⽤C语⾔的⼀些符号⽐如前⾯的这⾥引⽤也和取 地址使⽤了同⼀个符号⼤家注意使⽤⽅法⻆度区分就可以。吐槽⼀下这个问题其实挺坑的个 ⼈觉得⽤更多符号反⽽更好不容易混淆 其实简单来说就是取了个别名 我们打印一下他们的地址看一下是不是一样 其实这里已经说明了他们底层是指针大家可能觉得这样写会有点怪哈哈其实这个在函数传参的时候会非常方便 引用的特性 引用在定义时必须初始化  ⼀个变量可以有多个引用 引用一旦引用一个实体再不能引用其他实体 这里有一个案例很多同学喜欢把这个认为是在改变a 这里的c只有一个赋值作用我们可以看出地址是不一样的如果这里认为c是在改变a的话说明你C语言指针需要复习一下哈哈哈加油少年 引用的使用 引⽤在实践中主要是于引⽤传参和引⽤做返回值中减少拷⻉提⾼效率和改变引⽤对象时同时改变被 引⽤对象。引⽤传参跟指针传参功能是类似的引⽤传参相对更⽅便⼀些。引⽤返回值的场景相对⽐较复杂我们在这⾥简单讲了⼀下场景还有⼀些内容后续类和对象章节 中会继续深⼊讲解。引⽤和指针在实践中相辅相成功能有重叠性但是各有特点互相不可替代。C的引⽤跟其他 语⾔的引⽤(如Java)是有很⼤的区别的除了⽤法最⼤的点C引⽤定义后不能改变指向 Java的引⽤可以改变指向。⼀些主要⽤C代码实现版本数据结构教材中使⽤C引⽤替代指针传参⽬的是简化程序避开 复杂的指针但是很多同学没学过引⽤导致⼀头雾⽔。 接下来我用代码解释这个引用的应用 看吧我这个很形象了吧用引用的话我们就可以不用再传参数的时候写一个地址符这样也好理解一点我估计有可能老登也觉得指针有一点太复杂了 这种千万不要觉得奇怪他是一个LTNode*的指针传参自然也要是LTNode*的别名来接收 这边还没有写完后面还有一些内容明天补哈哈哈
http://www.w-s-a.com/news/791229/

相关文章:

  • 惠州市网站建设个人深圳网站优化价格
  • 营销型网站工程专业网站开发公司
  • 两个路由器做双网站西安关键词优化服务
  • 企业建站系统信息远象建设 网站
  • 移动建站平台物业管理系统app
  • 济南网站建设多少钱郑州公司做网站
  • 在阿里云网站建设wordpress模板如何修改字体
  • 网站推广方案设计购物网站模块例子
  • 潍坊网站定制公司网站图片放大特效怎么做的
  • 淘宝店铺买卖湘潭seo优化价格
  • 最好的网站建设用途合肥企业网站建设
  • 计算机编程与网站建设好玩的网页传奇
  • 商务网站建设找哪家本地推广找哪些网站
  • 手机h5网站企业网站管理系统的运维服务
  • 南京建设网站公司网站游戏怎么制作
  • 成都建站程序苏州市建设局招标网站首页
  • 自助建网站市场公司起名大全2020最新版的
  • dede网站模板北京 网站开发 大兴
  • 网站优化师招聘建设牌安全带官方网站
  • 南京网站建设网站做视频网站用什么格式
  • 普陀做网站价格wordpress接入qq互联
  • 网站2级页面怎么做杭州哪家做外贸网站
  • 做了静态网站怎么显示在互联网上营销策划与运营方案
  • 常见的英文网站国内军事新闻大事件
  • 傻瓜式做网站程序微信怎么开公众号
  • c2c电商网站wordpress仿36kr主题
  • 网站建设公司开发免费图纸网站
  • 一个网站页面设计多少钱做预算查价格的网站是哪个
  • 鳌江哪里有做网站百度短链接在线生成
  • 有没有什么做水利资料的网站杭州建设信用平台