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

域名如何做网站网站建设需要哪些专业技术

域名如何做网站,网站建设需要哪些专业技术,给公司网站做seo,响应式网站的费用C从入门到实战#xff08;四#xff09;C引用与inline#xff0c;nullptr 前言一、C 引用#xff08;一#xff09;什么是引用#xff08;二#xff09;引用的特点#xff08;三#xff09;引用作为函数参数#xff08;四#xff09;引用作为函数返回值#xff08;… C从入门到实战四C引用与inlinenullptr 前言一、C 引用一什么是引用二引用的特点三引用作为函数参数四引用作为函数返回值五引用的使用 二、Const引用1const 引用是干什么的2引用 const 对象3const 引用引用普通对象4引用和指针的关系3.1相同点3.2不同点 三、nullptr一nullptr 是什么二nullptr 与 NULL 的区别 四、inline 关键字一什么是 inline 函数二与C语言宏函数对比 前言 在上一篇博客中我们深入探讨了 C 中两个重要特性缺省参数与函数重载。 上一篇博客地址 https://blog.csdn.net/2402_83322742/article/details/145355328?spm1001.2014.3001.5501 缺省参数让函数调用更加简便维护更为轻松函数重载则增强了代码的可读性和灵活性。通过掌握这两个特性我们能够编写出更具灵活性和高效性的代码。 这一篇我们将继续探索 C 中另外几个重要的知识点C 引用、inline 关键字以及 nullptr。这些内容将进一步丰富我们对 C 语言的理解为编写更加复杂和高效的程序提供有力支持。 一、C 引用 一什么是引用 引用不是新定义一个变量而是给已存在变量取了一个别名编译器不会为引用变量开辟内存空间它和它引用的变量共用同一块内存空间。比如水浒传中李逵宋江叫 “铁牛”江湖上人称 “黑旋风”林冲外号豹子头 类型 引用别名 引用对象 #include iostream using namespace std;int main() {int a 0;int b a;int c a;//对d相当于还是a的引用int d b;cout a endl;cout b endl;cout c endl;cout d endl;return 0; }上述代码中b 是 a 的引用对 b 的操作等同于对 a 的操作对d相当于还是a的引用 二引用的特点 1.必须初始化引用在定义时必须初始化即必须指定它是哪个变量的别名。 // 错误示例 int ref; 2.一旦初始化后就不能再引用其他变量 int a 10; int b 20; int ref a; // ref b; // 这里不是让 ref 引用 b而是将 b 的值赋给 ref也就是 a3.一个变量可以有多个引用 #includeiostream using namespace std; int main() {int a 10;// 编译报错: “ra”: 必须初始化引用//int ra;int b a;int c 20;// 这里并非让b引用c, 因为C引用不能改变指向,// 这里是一个赋值b c;cout a endl;cout b endl;cout c endl;return 0; }三引用作为函数参数 引用作为函数参数可以在函数内部修改传入变量的值而且相比于指针代码更加简洁和安全。 void swap(int a, int b) {int temp a;a b;b temp; }int main() {int num1 5;int num2 10;swap(num1, num2);std::cout num1: num1 , num2: num2 std::endl; return 0; }在这个 swap 函数中通过引用参数直接操作实参实现了两个数的交换。 四引用作为函数返回值 引用也可以作为函数的返回值这样函数返回的是一个变量的引用而不是变量的副本。 int arr[5] {1, 2, 3, 4, 5}; int getElement(int index) {return arr[index]; }int main() {getElement(2) 10; std::cout arr[2]: arr[2] std::endl; return 0; }五引用的使用 1.C 中引用在实际应用里主要用在引用传参和引用做返回值的场景。 引用传参 比如下面这个交换两个数的函数使用引用传参能直接改变传入的实参值还减少了数据拷贝提高效率。而且改变引用对象时被引用对象也会跟着变。 #include iostream void swap(int a, int b) {int temp a;a b;b temp; } int main() {int num1 5;int num2 10;swap(num1, num2);std::cout num1: num1 , num2: num2 std::endl;return 0; }引用传参和指针传参对比 引用传参和指针传参功能差不多但引用传参用起来更方便。指针传参如下 #include iostream void swap(int* a, int* b) {int temp *a;*a *b;*b temp; } int main() {int num1 5;int num2 10;swap(num1, num2);std::cout num1: num1 , num2: num2 std::endl;return 0; }可以看到引用传参在函数调用时不需要像指针那样取地址在函数内部使用时也不需要像指针那样解引用* 。 3.引用和指针对比 引用和指针在实际编程中都很重要功能有重叠但各有特点不能互相替代。C 的引用和 Java 的引用区别较大C 引用定义后不能改指向Java 的可以。 二、Const引用 1const 引用是干什么的 const 引用就是加了 “规矩” 的引用。这个 “规矩” 就是不能通过这个引用去修改它引用的对象。就好像你给一个东西上了把锁只能看不能动。 2引用 const 对象 假如有个变量是 const 的这就说明这个变量是 “只读” 的不能被修改。你要是想用引用去访问它也得用 const 引用 打个比方有个宝箱被施了魔法只能看不能打开const 变量你要是想用一个能打开宝箱的钥匙普通引用去开它肯定不行啊这就违反魔法规则了。代码里就是这样 const int a 10; // 下面这行代码会报错因为普通引用就像能打开宝箱的钥匙违反了魔法规则 // int ra a; const int ra a; // 用 const 引用就对啦就像用了一把只能看宝箱的钥匙3const 引用引用普通对象 const 引用也可以引用普通对象 这就好比一个普通人普通变量你给他戴上一个 “不能随便乱动” 的帽子const 引用虽然他本来可以自由活动但戴上帽子后就只能乖乖待着了。这其实就是访问权限的缩小是允许的。 int b 20; const int rb b; // 给 b 戴上“不能随便乱动”的帽子 // 下面这行代码会报错因为不能通过 rb 去修改 b // rb 30; 4引用和指针的关系 指针和引用就像 C 编程世界里的两兄弟它们既有相似之处又各有特点 3.1相同点 指针和引用都和变量相关能用来操作其他变量功能上有重叠都可以间接访问别的变量。比如你想找到房间里的某样东西既可以通过知道这个东西所在的房间号指针指向变量地址也可以通过记住这个东西的另一个称呼引用给变量取别名来找到它。 3.2不同点 1.本质不同 引用就像是给变量取了个外号它和被引用的变量其实是同一个东西不需要额外的存储空间。比如一个人叫张三大家也叫他小张小张和张三指的就是同一个人。 指针是专门用来存放变量地址的需要开辟额外的存储空间。就好比一个小本子上面记录着某个东西所在的房间号。 2.初始化要求不同 引用就像给人取外号得一开始就明确是给谁取的所以引用在定义的时候必须进行初始化之后就不能再换 “对象” 了。比如你一开始给张三取了小张这个外号就不能再把小张这个外号给别人了。 指针虽然建议在定义的时候就初始化但语法上不是必须的。就像小本子你可以先空着等需要的时候再记录房间号。不过不初始化可能会导致一些问题。 3.指向的灵活性不同 引用一旦确定引用的对象就不能再引用其他对象了它会 “从一而终”。就像外号一旦确定给了某个人就不能再给别人用了。 指针可以不断改变指向的对象就像小本子上可以随时擦掉原来的房间号写上新的房间号。 4.访问方式不同 引用可以直接访问指向的对象因为它就是对象的别名就像叫小张其实就是在叫张三能直接找到这个人。 指针需要通过解引用操作才能访问指向的对象就像你只知道房间号得拿着这个号去找到对应的房间才能拿到里面的东西。 5.sizeof 结果不同 引用sizeof 得到的是引用类型的大小也就是被引用对象的大小。就像问小张占多大空间其实就是问张三占多大空间。 指针sizeof 得到的是地址空间所占的字节数在 32 位平台下占 4 个字节64 位平台下占 8 个字节。不管指针指向的是什么类型的对象它记录的都是地址所以大小是固定的就像小本子不管记录的是哪个房间号它本身的大小是不变的。 6.安全性不同 引用很少出现空引用和类似指针的错误情况使用起来相对更安全因为它一开始就确定了引用的对象而且不会改变。就像外号不会叫错人。 指针容易出现空指针小本子上没写房间号和野指针小本子上写的房间号是错的或者已经无效了的问题使用时需要格外小心。 三、nullptr 一nullptr 是什么 在 C 中nullptr 是一个关键字用于表示空指针。在 C 之前通常用 NULL 来表示空指针NULL 实际上是一个宏定义在不同的编译器中可能被定义为 0 或者 (void*)0。而 nullptr 专门用于表示空指针类型为 std::nullptr_t可以避免一些与 0 或 NULL 相关的二义性问题。例如 int* ptr1 nullptr; // int* ptr2 NULL; // 虽然也能表示空指针但可能存在二义性二nullptr 与 NULL 的区别 类型安全nullptr 具有明确的类型 std::nullptr_t而 NULL 可能被定义为 0这可能导致一些重载函数调用的二义性。例如 void func(int num) {std::cout func(int): num std::endl; } void func(int* ptr) {std::cout func(int*): (ptr? not null : null) std::endl; } int main() {func(nullptr); // 明确调用 func(int*)// func(NULL); // 可能会调用 func(int)产生二义性return 0; }四、inline 关键字 一什么是 inline 函数 inline 关键字用于定义内联函数。内联函数的作用是在编译时将函数调用处用函数体替换减少函数调用的开销提高程序执行效率。 #include iostream// 定义一个内联函数用于计算两个整数的和 inline int add(int a, int b) {return a b; }int main() {int x 3, y 5;// 调用内联函数int result add(x, y); std::cout The result is: result std::endl;return 0; }二与C语言宏函数对比 C 语言宏函数宏函数只是简单的文本替换不会进行类型检查。 // 定义宏函数 #define ADD(a, b) ((a) (b))#define SQUARE(x) ((x) * (x)) // 调用时传入字符串预处理器仍会进行替换可能导致运行时错误 char* str test; int res SQUARE(str); C 内联函数作为真正的函数C 内联函数会进行严格的类型检查。 inline double square(double num) {return num * num; } // 调用时如果传入整数会进行隐式类型转换 int result square(5); C 内联函数内联函数是真正的函数在调试时可以像普通函数一样进行调试能够方便地设置断点、查看变量值等。而且内联函数的代码结构清晰易于维护和理解。例如使用调试器可以单步进入内联函数的代码。 C 语言宏函数宏函数的调试相对困难因为预处理器在编译前就完成了文本替换调试器看到的是替换后的代码很难直接定位到宏定义的位置。同时宏函数的代码可能会因为复杂的替换规则而变得难以理解和维护。 以上就是这篇博客的全部内容下一篇我们将继续探索 C 的更多精彩内容。 非常感谢您的阅读喜欢的话记得三连哦
http://www.w-s-a.com/news/101616/

相关文章:

  • 购物网站开发需要什么技术怎么查看网站是否备案
  • 学做电商那个网站好网站建设投票主题
  • 中卫网站推广网络营销毕业设计做网站大小有什么要求
  • 做问卷网站义乌网站建设推广专家
  • 不会编程怎样建设网站昆明做网站哪家
  • 直播网站模板新营销平台电商网站
  • 建设部指定招标网站免费的企业查询软件
  • 做前端常用的网站及软件下载平台优化是什么意思
  • 企石镇仿做网站wordpress 网站白屏
  • 班级网站建设规划书专业定制网红变色杯
  • 上海网站设计公司电话甘肃路桥建设集团有限公司官方网站
  • 哈尔滨网站建设网站开发陕西省建设监理工程协会网站
  • 微信公众号电商网站开发wordpress增加论坛
  • 网站建设视频百度网盘下载免费wordpress搭建
  • 哈尔滨市网站建设公司汕头市公司网站建设平台
  • 东莞网站建设方案外包甘肃两学一做网站
  • 网站建设优化排名推广平面设计职业学校
  • 网后台的网站怎么做网站代理商
  • 网站如何转移到新的空间服务器上手机无人区离线地图app
  • 网站建设模板的买域名做网站的坏处
  • 长春做网站qianceyun做景观素材有哪几个网站
  • 自己建的网站也要注册域名吗邯郸市做网站
  • 天津网站建设制作软件潍坊个人做网站
  • 重庆城市建设集团官方网站php用什么做网站服务器
  • 深圳坪山站重庆市园林建设有限公司网站
  • 网站建设图片教程如何用自己的电脑建网站
  • 《网页设计与网站建设》A卷答案广东新闻联播
  • 海南专业网站运营托管wordpress 去掉主题
  • 企业品牌网站制作甜品制作网站
  • 手机网站怎么制作影响力网站建设