逗号运算符和逗号表达式
C语言中“,”也是一种运算符,其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的一般格式为:
表达式1,表达式2,…,表达式n
(1)逗号表达式的执行顺序是:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。
如对于表达式“a=4,b=5,c=a+b”,首先计算a=4的值,结果为4,在计算b的值,结果为5,最后计算c=a+b的值,结果为9,则整个逗号表达式的值为9,该表达式执行完后,a=4,b=5,c=9.
(2)逗号运算符是双目运算符,其优先级最低,是左结合的。
(3)并非所有出现逗号地方都为逗号表达式,如在变量说明语句中,以及函数表达式中逗号只是用作各变量之间的分隔符。
逗号表达式应用示例
#include<stdio.h>
int main()
{
int i,j=7;
float k=5;
i=(j=j+2,j/k);
printf("i=%d\n",i);
return 0;
}
运行结果为:
i=1
求字节数运算符
运算符sizeof用于计算数据类型所占的字节数,它是一个单目运算符,优先级高于双目运算符,其一般格式如下:
(1)sizeof(表达式)或sizeof表达式
(2)sizeof(数据类型名)
不同数据类型字节数示例:
#include<stdio.h>
int main()
{
printf("char类型占%d字节\n",sizeof(char));
printf("short int类型占%d字节\n",sizeof(short int));
printf("int类型占%d字节\n",sizeof(int));
printf("float类型占%d字节\n",sizeof(float));
printf("double类型占%d字节\n",sizeof(double));
return 0;
}
运行结果:
char类型占1字节
short int类型占2字节
int类型占4字节
float类型占4字节
double类型占8字节
求字节数运算符示例:
#include<stdio.h>
int main()
{
int a,b;
a=sizeof(3+5.0);
b=sizeof 3+5.0;
printf("%d,%d,%d\n",a,b,sizeof("china"));
return 0;
}
运行结果:
8,9,6
说明:执行语句“a=sizeof(3+5.0);”时,先计算出3+5.0的结果为double型的8.0,然后再对其求字节数,结果为8。执行语句“b=sizeof3+5.0;”时,由于sizeof运算符的优先级高于+运算符,因此计算sizeof3,其值为4,然后计算4+5.0=9.0,赋值给int型的变量b时,b=9。“china”是字符串,其字节数为字符串的长度加1字节,增加的这个字节用于存放字符串的结束符‘\0’。