8-用算符(中)

  • 2020 年 2 月 13 日
  • 笔记

四、sizeof sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。 int size = sizeof(10); printf("10所占的字节数:%d", size); 输出结果: ,10是int类型的数据,在64bit编译器环境下,int类型需要占用4个字节 sizeof一共有3种形式 sizeof( 变量常量 ) sizeof(10);

char c = 'a';

sizeof(c); sizeof 变量常量 sizeof 10;

char c = 'a';

sizeof c;


char c = 'a';

sizeof c; sizeof( 数据类型 ) sizeof(float); 注意,不可以写成sizeof float;


五、逗号运算符 逗号运算符主要用于连接表达式,例如: int a = 9;

int b = 10;

a = a+1 ,

b = 3*4; 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为: 表达式1, 表达式2, … …, 表达式n 逗号表达式的运算过程是:从左到右的顺序,先计算表达式1,接着计算表达式2,…,最后计算表达式n 逗号运算符也是一种运算符,因此它也有运算结果。整个逗号表达式的值是最后一个表达式的值 1 int a = 2; 2 int b = 0; 3 int c; 4 5 c = (++a, a *= 2, b = a * 5); 6 7 printf("c = %d", c); ++a的结果为3,a *= 2的结果为6,b = a * 5的结果为30。因此,输出结果为: 这里要注意的是,右边的表达式是有用括号()包住的,如果不用括号包住,也就是: c = ++a,;

a *= 2;

b = a * 5;

printf("c = %d", c); 输出结果将为: 3; ,因为c = ++a也属于逗号表达式的一部分,跟后面的a *= 2以及b = a * 5是相互独立的


六、关系运算符 1.“真”与“假” 1> 默认情况下,我们在程序中写的每一句正确代码都会被执行。但很多时候,我们想在某个条件成立的情况下才执行某一段代码。比如微信的这个界面:

如果用户点击了注册按钮,我们就执行“跳转到注册界面”的代码;如果用户点击了登录按钮,我们就执行“跳转到登录界面”的代码。如果用户没做出任何操作,就不执行前面所说的两段代码。像这种情况的话可以使用条件语句来完成,但是我们暂时不学习条件语句,先来看一些更基础的知识:如何判断一个条件成不成立。如果这个都不会判断,还执行什么代码。 2> 在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立,就是判断条件的“真假”。那怎么判断真假呢?C语言规定,任何非0值都为“真”,只有0才为“假”。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”。 2.关系运算符的简单使用 C语言中还提供了一些关系运算符,可以用来比较两个数值的大小。 < 小于。比如a<5 <= 小于等于。比如a<=5 大于。比如a>5 = 大于等于。比如a>=5 == 等于。比如a==5 != 不等于。比如a!=5 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。 1 int a1 = 5 > 4; // 1 2 3 int a2 = 5 < 4; // 0 3.关系运算符的使用注意 1> 关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者 例如2==3>1 :先算3>1,条件成立,结果为1。再计算2==1,条件不成立,结果为0。因此2==3>1的结果为0。 2> 关系运算符的结合方向为“从左往右” 例如4>3>2 :先算4>3,条件成立,结果为1。再与2比较,即1>2,条件不成立,结果为0。因此4>3>2的结果为0。 3> 关系运算符的优先级小于算术运算符 例如3+4>8-2 :先计算3+4,结果为7。再计算8-2,结果为6。最后计算7>6,条件成立,结果为1。因此3+4>8-2的结果为1。