首页 > 其他分享 >C语言逗号运算符

C语言逗号运算符

时间:2022-11-08 23:23:28浏览次数:48  
标签:逗号 优先级 int C语言 运算符 表达式

在C语言中,逗号运算符虽然不起眼,但也是运算符的一种,而且在所有运算符中,逗号运算符的优先级是最低的。

逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果。

因此我们有下面这个例子:

#include<stdio.h>
int main()
{
	int a=1+2,3+4;
	printf("%d",a);
	return 0;
}

想想会输出什么呢?答案是3。
因为逗号运算符的优先级最低,所以这里先执行1+2的值为3,然后直接赋值给a,至于3+4的值去哪了呢,当然是直接被丢弃啦。

为了增进理解,还有一个例子:

#include<stdio.h>
int main()
{
	int a=(1+2,3+4);
	printf("%d",a);
	return 0;
}

在这里,括号将逗号运算符的优先级提到了最先,所以先计算1+2,再计算3+4,然后返回右值7(即3+4),因此,程序的输出是7.

但是逗号运算符在自创函数中只作为普通分隔参数使用,与汉语中逗号的作用相似。

标签:逗号,优先级,int,C语言,运算符,表达式
From: https://www.cnblogs.com/Syhang/p/16871639.html

相关文章

  • c语言提高学习笔记——03-c提高10day_数据结构
    在学习c语言提高-数据结构总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。03-c提高10day_数据结构目录:一、队列(Queue)1、队列基本概念2......
  • c语言查漏补缺——Win32环境下动态链接库(DLL)编程原理
    在c语言查漏补缺总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。目录:一、Win32环境下动态链接库(DLL)编程原理1、导出和导入函数的匹配2......
  • C语言指针
    在C语言中,有两种方式得到一个变量方式一:直接找到变量方式二:间接找到变量。也就是先找到变量的地址,然后再根据地址解析得到该变量。......
  • elementUI table 数组中各项加逗号隔开
    js处理//this.newTableData数组this.newTableData.map((item,index)=>{//item.label数组if(item.label){......
  • C语言输出随机数
    rand()函数#include"stdio.h"#include"stdlib.h"#include"time.h"intmain(){ inti,num; srand(time(0)); for(i=0;i<10;i++){ num=rand()%10+1; prin......
  • C基础学习笔记——01-C基础第05天(运算符和流程结构语句)
    在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。01-C基础第05天(运算符和流程结构语句)目录:一、运算符(运算符优先级)二、程序流......
  • 用实例讲清JavaScript中的空合并运算符
    https://javascript.plainenglish.io/the-nullish-coalescing-operator-in-javascript-explained-with-examples-3e056e49a2c2原译|杨小二如今JavaScript具有许多强大的......
  • C语言值传递和指针
    刚开始接触C语言时,可能都会有这样的一个疑问:为什么有时候C语言的函数需要传递一个指针对象?而不是直接传递一个变量?因为需要修改并影响到实参。 我们知道在编程语言中......
  • C语言自创函数
    为什么要采用自创函数?在设计较复杂的程序时,一般采用自顶向下的方法,将问题划分为几个部分,各个部分再进行细化,直到分解为较好解决问题为止。模块化程序设计是指在进行程序......
  • 运算符重载
    4.5运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型4.5.1加号运算符重载作用:实现两个自定义数据类型相加的运算classPer......