五、赋值及自增自减
1、运算符是什么?
“=”赋值运算符、“+=”加等于运算符、“-=”减等于运算符、“++”自增运算符、“--”自减运算符
2、运算符由什么用?
改变数据的值。
3、运算符怎么用?
int a = 1; a += 2; a -= 2; a++; a--; ++a; --a;
4、运算符什么时候用?
当你想改变数据的值。
5、运算符由什么特点?
1)变量才能自我变化,如自增或自减,但常量不能。
2)++a与a++,对a本身没有区别,但是参与其它运算时,a++这个整体的值没有变化。如,int a = 1; int b = a++; 那么a = 2,b等于1,但如果是int b = ++a; 则a和b都为2,即++在前,则运算前自增,再参与别的运算,但++在后,则先参与别的运算后再自增 。
六、sizeof
1、sizeof是什么?
sizeof是C语言的一个关键字,是一种单目操作符,而不是函数。
2、sizeof有什么用?
sizeof操作符以字节形式给出了其操作数或数据类型的存储大小。
3、sizeof怎么用?
sizeof(类型说明符,数组名或表达式) 如,sizeof(int);
或sizeof变量名 如:int a; sizeof a;
4、sizeof什么时候用?
当需要查看数据类型或变量在当前编译环境占用字节数时。
5、sizeof有什么特点?
1)sizeof是根据当前系统的编译环境去计算字节的大小。
2)注意sizeof后面直接连字符的用法,会自动变成ASCII对应的int值。
6、补充
1)有几部分内容参与运算,就叫几目运算符。
2)只有一部分内容参与运算,就是单目操作符。
3)“+”有两部分内容参与运算,叫双目操作符。
4)sizeof后不能直接跟数据类型,需要加括号sizeof(int)。
5)sizeof应用场景:当需要字节数参与运算时(编译器环境不同,占用的字节数也不同) 如:用int字节数,乘以10 printf(“%lu\n”,sizeof(int)*10);
6)printf(“%lu)n”,sizeof(‘a’)); //4 ‘a’自动转换成ASCII码对应的数值97,97是整型,所以返回占用的字节数是4。
7)任何的一个字符参与运算的时候读会转换成对应的ASCII码对应的int值。
8)sizeof运算结果是一个无符号(long unsigned int)的长整型,表示正整数,用lu占位,但是可以跟int互相转换(有符号的长整型包括所有范围内的整数)。
七、关系运算
1、关系运算时什么?
“==”、“>”、”<”、”>=”、”<=”、”==”、”!=”
2、关系运算符有什么用?
对数据进行比较,看是否成立。
3、关系运算符怎么用?
把运算符号放在两个要比较的数据中间就可以。条件成立=真(1),条件不成立=假(0)。
4、关系运算符什么时候用?
当需要对两个数据进行比较。
5、关系运算符有什么特点?
1)关系运算符运算结果是一个int值.0或1。
2)优先级:>、<、>=、<=、优先级相等,但大于==和!=,同时==与!=优先级相等。
3)如果优先级相同的两个运算,先后顺序看结合律(结合律值要么从左往右运算,那么从右往左运算),关系运算符结合律是从左往右,即:先看优先级,再看结合律,如下:int b = 1 != 2 > 3 < 4; 等效于:2 > 3为假=0,0 < 4为真=1,1 != 1为假=0,所以最终结果=0。
八、逻辑运算
1、逻辑运算是什么?
“ ||”或“ && ”与(且) “ ! ”非
2、逻辑运算有什么用?
对多个表达式进行并列真假判断.。
3、逻辑运算怎么用?
||只要有一边的表达式为真,则结果为真1,两边都不成立,则结果为假0。
而&&必须两边 全部为真才为真,只要有一边的表达式为假,结果为假。
如:1>2||2>1;结果为真(1),但如 果1>2&&2>1.结果为假(0);!则是取当前结果的反面.真假调换.
4、什么时候用?
当需要对对多个表达式进行并列真假判断。
5、有什么特点?
1)所有数据都有真假值.0为假,其它的数都为真(规定).。结合律:从左往右执行。
2)如果||表达式左边表达式已经为真,则右边不执行。而&&只要左边为假右边不执行。3.优先级顺序为:小括号() > 负号( -) > ! > 算术运算符 > 关系运算符 > && > || 如:1+2<3||!-3<4&&5>0 等效于(1+2)<3 || ( ( !(-3) )<4 && (5>0) ) 结果是:1。
6、示例
int main() {
int a = 2;
int b = 1 > 2 || a++; //1>2不成立,返回0,但是a的值是2是真,返回1
printf("a=%d,b=%d\n",a,b); //a=3,b=1
int a1 = 1 + 2 < 3 || !-3 < 4 && 5> 0;
printf(“%d”,a1); //1
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |