iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中如何使用逗号操作符
  • 207
分享到

C++中如何使用逗号操作符

2023-06-17 16:06:37 207人浏览 独家记忆
摘要

c++中如何使用逗号操作符,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。其实,我们是经常会用到逗号操作符的,但是并不是所有代码里出现的逗号都是逗号操作符。让我们先从一个类的示例

c++中如何使用逗号操作符,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

其实,我们是经常会用到逗号操作符的,但是并不是所有代码里出现的逗号都是逗号操作符。

让我们先从一个类的示例代码开始:

class mynum  {  public:  mynum(double ndb,...)  {  //init with arguments  }  };  class someclass  {  someclass():  num(3,4)  ,a(0)  ,b(0)  ,c(15)  {  int i,j;   i=1,2; //int x=1,2;  for(;b<10;++b,--c)  {  ++a;  }  }  mynum num;  int a;  int b,c;  };

现在先让我们来看看C++逗号操作符是啥意思:

一个包含逗号的表达式首先计算逗号左边的表达式,然后计算逗号右边的表达式;整个表达式的结果是逗号右边表达式的值。

然后我们看看上面的代码:

第5行是在mynum类的构造函数里出现的逗号,只是用来区分开***个double类型的参数和后面的可变参数。这是一个特例,如果在构造mynum对象的时候,本来是要传入3.4作为***个参数的,结果不小心把小数点变成了逗号的话,3.4就变成了两个参数3和4&mdash;&mdash;比如在第13行的情况。类似这样的情况编译器不会报错,程序也能运行,但是mynum类里的成员变量可能就因为构造函数传入的变量值变化而导致程序运行结果完全不一致了。这两个逗号都不是逗号操作符了。

第14,15,16行的逗号,也不是逗号操作符。这三个逗号只是用来间隔构造函数的成员变量初始化列表。

第18行的int i,j;是大家都很常用的变量声明的语句,逗号在这里,也只是起了一个间隔变量声明的作用,也不是逗号运算符。

第19行的逗号,如果不认识C++逗号操作符的话,一定会认为这肯定是写错了!其实这正是逗号操作符了。让我们看看,经过i=1,2;这个语句后,i 的值应该是多少呢?按照之前逗号操作符的定义,我们好像可以很轻松的得出i=2。然而,这个答案是错的!你在得出错误答案的时候,忽略了一个重要的因素&mdash;&mdash;运算符优先级!由于=号的优先级更高,所以i=1,2;这个语句相当于(i=1),2; ,如果要得到期望的2,我们应该这样来写i=(1,2);。下面的代码可以验证这个说法的(注意第3行是无意义代码,但是可不是错误代码哦!)

int i,j;  i=1,2;  3,4;  j=(1,2);  printf("%d\n%d\n",i,j);

继续看***份代码里的第20行,这是一个for循环代码。这里的逗号,也是逗号操作符哦。其实for循环也是逗号操作符经常出现的地方哦。for循环里只能写一个表达式,而逗号表达式这个时候就可以让你完成两个甚至多个表达式的计算。比如“for(;b<10;++b,--c)”,++b和--c就会在每次循环中都被执行到。

第27行就无须多说了。也就是一普通的变量声明语句,这里的逗号也不是C++逗号操作符的。

总的来说,逗号操作符并不是一个非常常用的操作符,它只在某些特定的上下文环境里会有很好的效果,同时,在编码中还要非常小心错误的输入的逗号引发错误的问题。

比如逗号和括号就会引发一些潜在问题,如果在编码的时候一疏忽就会产生一些难以追查的隐藏bug,只有遵守一些既定的编码规范,养成良好严谨的编码习惯,才有助于避免一些诸如此类的问题出现。看看下面的代码:

int myadd(int i,int j,int k)  {  return i+j+k;  }  int myadd(int i,int j)  {  return i+j;  }  int main()  {  for(int x=0;x<9;++x)  {  printf("%d",myadd((2,3),4));  }  }

由于在第15行,错误的添加了括号(在实际编码中这样的情况太常见了),结果导致整个的输出全错了!因为(2,3)这个C++逗号操作符表达式的返回值是3,所以15行相当于是myadd(3,4)了!

看完上述内容,你们掌握C++中如何使用逗号操作符的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网其他教程频道,感谢各位的阅读!

--结束END--

本文标题: C++中如何使用逗号操作符

本文链接: https://www.lsjlt.com/news/290965.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中如何使用逗号操作符
    C++中如何使用逗号操作符,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。其实,我们是经常会用到逗号操作符的,但是并不是所有代码里出现的逗号都是逗号操作符。让我们先从一个类的示例...
    99+
    2023-06-17
  • JavaScript如何使用逗号操作符
    这篇文章将为大家详细讲解有关JavaScript如何使用逗号操作符,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。逗号操作符var a = 0...
    99+
    2022-10-19
  • C++超详细讲解逗号操作符
    目录一、逗号操作符二、重载逗号操作符三、小结一、逗号操作符 逗号操符( , )可以构成逗号表达式 逗号表达式用于将多个子表达式连接为一个表达式逗号表达式的值为最后一个子表达式的值逗号...
    99+
    2022-11-13
  • JavaScript中逗号操作符怎么用
    小编给大家分享一下JavaScript中逗号操作符怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!逗号操作符var ...
    99+
    2022-10-19
  • c语言逗号运算符的使用方法
    本文将为大家详细介绍“c语言逗号运算符的使用方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“c语言逗号运算符的使用方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧...
    99+
    2023-06-06
  • js如何如何使用逗号运算符
    这篇文章主要介绍了js如何如何使用逗号运算符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。逗号运算符我不是在谈论用逗号分隔符来分隔容器中的对象或元素,例如 const arr...
    99+
    2023-06-27
  • C#中如何使用三元操作符
    C#中如何使用三元操作符,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C# 操作符之三元操作符“:”是什么呢?C# 操作符之三元操作符“:”有时也称为条件操作符...
    99+
    2023-06-18
  • javascript如何去掉字符串中的逗号
    这篇文章主要为大家展示了“javascript如何去掉字符串中的逗号”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何去掉字符串中的逗号”这...
    99+
    2022-10-19
  • JavaScript中逗号运算符是怎样使用的
    今天就跟大家聊聊有关JavaScript中逗号运算符是怎样使用的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。逗点算符可与一组表达式运算符相配合,产...
    99+
    2022-10-19
  • 怎么在MySql中使用逗号拼接字符串
    怎么在MySql中使用逗号拼接字符串?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。例如某字段里是为1,2,3,4,5 使用方法:...
    99+
    2022-10-18
  • C#如何使用LINQ查询操作符
    这篇文章主要讲解了“C#如何使用LINQ查询操作符”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#如何使用LINQ查询操作符”吧!连表操作符1、内连接使用 join 子句 根据特定的条件合...
    99+
    2023-07-02
  • java如何将list字符串用逗号隔开拼接字符串
    这篇文章主要介绍了java如何将list字符串用逗号隔开拼接字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。第一种:使用谷歌Joiner方法import com...
    99+
    2023-06-22
  • C语言简明讲解三目运算符和逗号表达式的使用
    目录一、三目运算符二、逗号表达式三、小结一、三目运算符 三目运算符( a b : c)可以作为逻辑运算的载体 规则:当 a 的值为真时,返回 b 的值;否则返回 c 的值 下面看一...
    99+
    2022-11-13
  • Python字符串中如何去除数字之间的逗号
    目录字符串去除数字间的逗号删除字符串中的符号字符串去除数字间的逗号 在西文数字的表示中,很多格式是类似这样:123,456,789。 如果得到这样的一个字符串,直接用int转换成整型...
    99+
    2022-11-11
  • 如何从Python字符串中删除最后一个分号或者逗号
    目录从Python字符串中删除最后一个分号或者逗号第一种方法第二种方法补充:在 Python 中从字符串中删除逗号从Python字符串中删除最后一个分号或者逗号 第一种方法 使用 s...
    99+
    2023-05-14
    Python字符串删除分号或逗号 Python字符串删除最后一个逗号 Python字符串删除逗号
  • C语言注释符号如何使用
    本篇内容主要讲解“C语言注释符号如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言注释符号如何使用”吧!一、注释规则编译器在编译过程中使用空格替换整个注释字符串字面量中的 // 和 ...
    99+
    2023-06-30
  • C++逻辑操作符怎么使用
    本篇内容主要讲解“C++逻辑操作符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++逻辑操作符怎么使用”吧!一、逻辑运算符的原生语义操作数只有两种值( true和 false )逻辑表...
    99+
    2023-06-30
  • Java8如何将List转换为用逗号隔开的字符串
    这篇文章主要介绍了Java8如何将List转换为用逗号隔开的字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用谷歌的Joiner转换public static...
    99+
    2023-06-14
  • 隐式和显式操作符如何在C#项目中使用
    隐式和显式操作符如何在C#项目中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是显式,什么是隐式隐式类型转换 它是运行时自动帮你完成的,言外之意就是你不需要人为干预...
    99+
    2023-06-14
  • Linq 中如何使用Contains操作符
    Linq 中如何使用Contains操作符,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。投影和排序您可能还注意到我在之前的示例中暗藏了一个投影。在使用 Max 操作符之前,LI...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作