C语言——运算符(学习分享)(二)

简介: C语言——运算符(学习分享)(二)

三、其他运算符


3.1sizeof运算符

sizeof运算符以字节为单位返回运算对象的大小

运算对象可以是具体的数据对象(比如变量名)或数据类型,如果数据对象是类型,那么必须用圆括号把数据类型给括起来

例如:

int a = 0;//创建一个变量就给它初始化是个好习惯
printf("%d \n",sizeof(int)); //必须加圆括号,打印结果为4
printf("%d \n",sizeof n);//变量名可以不加括号,打印结果为4
printf("%d \n",sizeof(char));//打印结果为1
printf("%d \n",sizeof(long));//打印结果为4
printf("%d \n",sizeof(long long));//打印结果为8
printf("%d \n",sizeof(float));//打印结果为4
printf("%d \n",sizeof(double));//打印结果为8


C语言规定,sizeof 返回 size_t类型的值。(这是一个无符号(unsigned)整型)C99新增%zd转换说明用于printf()显示size_t类型的值。(如果系统不支持可以用%u或%lu代替)


3.2求模运算符:%

求模运算符(%)只能用于整数,不能用于浮点数

求模运算符给出左侧整数除以右侧整数的余数。例如

printf("%d",17 % 4);//打印结果为1,即17比4的四倍多1

3.3递增运算符:++

递增运算符有两种模式,前缀模式(如++i)和后缀模式(i++)。两者的区别在于递增行为发生的时间不同 。

//简单的说,i++是先使用,再++;++i是先++再使用

举个栗子:

例1:后缀++

int a = 100;
int b = a++;
printf("a = %d,b = %d",a,b);
//打印结果:a = 101,b = 100
//对应上面说的,先使用:变量a的值先赋给b;再++:a = a + 1
//因此最后a = 101, b = 100


例2:前缀++

int a = 100;
int b = ++a;
printf("a = %d,b = %d",a,b);
//打印结果:a = 101,b = 101
//对应上面说的,先++:a += 1;再使用:b = a(=101)
//因此最后a = 101, b = 101


但是当单独使用递增(递减)运算符时,使用前缀or后缀都可,如:

i++;    //或++i;

*在条件的判断中(比如下面这个),建议用前缀模式

while(++age < 60)

如果使用age++,age最后会增至61,多了一次判断,总归是比只递增到60来的不那么好


3.4递减运算符:–、

跟递增运算符道理相同,这里大抵就举两个例子罢


例1:后缀–

int a = 100;
int b = a--;
printf("a=%d b=%d\n", a, b);
//打印结果:a = 99,b = 100
//先使用:b = a(=100);再--:a = a - 1
//因此最后a = 99, b = 100


例2:前缀–

int a = 100;
int b = --a;
printf("a = %d,b = %d",a,b);
//打印结果:a = 99,b = 99
//对应上面说的,先--:a = a - 1;再使用:b = a(=99)
//因此最后a = 99, b = 99


3.5优先级

递增/递减运算符的优先级很高,只有圆括号()的优先级比他们高。


如果i++是表达式的一部分,依旧是“先使用i,再++”

举个栗子:

int w = 2;
int i = 6;
int mix = (w + i++)*2;
printf("%d",mix);
//打印的结果是16
//这里要注意,i的值只有被使用以后才会递增为7
//还有一点,递增/递减运算符只能作用于一个变量
//具体到这段代码,++只作用于i而不是w+i
相关文章
|
6天前
|
C语言
c语言运算符
C的运算符有以下几种: 算术运算符:+、-、*、/、% 结合方向自左向右 关系运算符:>、<、==、>=、<=、!= 逻辑运算符:!、&&、|| 位运算符<<、>>、~、|、^、& 赋值运算符:=及符号扩展赋值运算符(+=、-=、*=、/=) 条件运算符:? : 逗号运算符:, 指针运算符:*、& 求字节运算符:sizeof 强制类型转换运算符:((类型)) 分量运算符:.、-> 下标运算符:[]
14 4
|
3月前
|
存储 C语言
C语言数据类型、变量和运算符以及printf相关问题
C语言数据类型、变量和运算符以及printf相关问题
|
2月前
|
C语言
C语言判断和运算符联系
在 C 语言中,判断与运算符紧密相关,主要体现在条件表达式的使用上。
194 87
|
2月前
|
安全 C语言
C语言运算符的使用注意点
在C语言中,正确使用运算符能提升代码的可读性和效率。本文介绍了八大注意事项:运算符优先级和结合性影响运算顺序;自增/自减运算符分前缀和后缀形式;逻辑运算符有短路特性;位运算符直接操作二进制位需谨慎;条件运算符简洁但避免复杂嵌套;类型转换避免意外结果;使用括号明确运算顺序。掌握这些要点有助于编写更安全高效的代码。
183 72
|
1月前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
39 3
|
1月前
|
C语言
C语言条件运算符详解
C语言条件运算符,也称为三元运算符,是一种简化if-else语句的表达式,形式为:条件?表达式1:表达式2。当条件为真时,计算并返回表达式1的值;否则计算并返回表达式2的值。它可用于快速实现简单的条件分支逻辑。
|
2月前
|
安全 C语言
在C语言中,正确使用运算符能提升代码的可读性和效率
在C语言中,运算符的使用需要注意优先级、结合性、自增自减的形式、逻辑运算的短路特性、位运算的类型、条件运算的可读性、类型转换以及使用括号来明确运算顺序。掌握这些注意事项可以帮助编写出更安全和高效的代码。
49 4
|
1月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
15 0
|
2月前
|
程序员 C语言
【C语言基础考研向】06运算符与表达式
本文介绍了C语言中的运算符分类、算术运算符及表达式、关系运算符与表达式以及运算符优先级等内容。首先概述了13种运算符类型,接着详细说明了算术运算符的优先级与使用规则,以及关系运算符和表达式的真假值表示,并给出了C语言运算符优先级表。最后附有课后习题帮助巩固理解。
104 10
|
2月前
|
存储 编译器 C语言
【C语言基础考研向】07逻辑运算符与赋值运算符
本文介绍了C语言中的逻辑运算符与逻辑表达式、赋值运算符以及求字节运算符`sizeof`。逻辑运算符包括`!`(逻辑非)、`&&`(逻辑与)和`||`(逻辑或),其优先级规则与数学运算符类似。通过示例展示了如何用这些运算符判断闰年及逻辑非的运算方向。此外,文章还解释了左值与右值的概念及其在赋值运算中的应用,并介绍了复合赋值运算符的使用方法,如加后赋值`+=`和乘后赋值`*=`。最后,通过`sizeof`运算符示例展示了如何获取变量的字节大小。