单目运算符详解

单目运算符详解单目操作符也就是只有一个操作数的操作符 在运算时优先级也是比较高的 下面就一起来看看单目运算符的具体用法吧 单目运算符

大家好,欢迎来到IT知识分享网。

单目操作符也就是只有一个操作数的操作符,在运算时优先级也是比较高的,下面就一起来看看单目运算符的具体用法吧!

一、单目操作符:

单目运算符只有一下几个。

! //逻辑反操作 - //负值 + //正值 & //取地址 sizeof //求操作数的类型长度(以字节为单位) ~ //对一个数的二进制按位取反 -- //前置、后置减减 ++ //前置、后置加加 * //间接访问操作符(解引用操作符) (强制类型转换) //强制类型转换

二、!运算符:

!是逻辑反操作,作用是真变假,假变真。

//!操作符 #include<stdio.h> int main() { int flag = 5; //该表达式是flag为真进入判断 if (flag) { printf("hehe\n"); } //该表达式是flag为假进入判断 if (!flag) { printf("haha\n"); } return 0; }

三、&操作符:

该操作符的作用是取地址。

//&操作符 #include<stdio.h> int main() { int a = 10; int* p = &a;//拿到a的地址,存放在指针变量p中 int arr[10]; int* parr = &arr;//&数组名是拿到数组的地址 printf("%p\n", p);//打印结果为:0000002A7E8FF914 printf("%p\n", parr);//打印结果为:0000002A7E8FF958 //%p是以地址的形式打印 *p = 20;//*是解引用操作符,也叫间接访问操作符 //通过p间接访问到a,并把20赋给a printf("%d\n", a);//打印结果为:20 return 0; }

四、sizeof操作符:

该操作符的作用是求类型长度。

//sizeof操作符 #include<stdio.h> int main() { int a = 10; printf("%d\n", sizeof(a));//打印结果为:4 printf("%d\n", sizeof a);//打印结果为:4 printf("%d\n", sizeof(int));//打印结果为:4 printf("%d\n", sizeof 10);//打印结果为:4 //哪种写法都可行,但是int两端的括号不能省略 //变量名两端的括号可以省略 int arr[10] = { 0 }; printf("%d\n", sizeof(arr));//打印结果为:40 printf("%d\n", sizeof arr);//打印结果为:40 printf("%d\n", sizeof(int[10]));//打印结果为:40 //数组的类型是int[] //数组名一般是数组首元素的地址,但是&数组名和sizeof(数组名)除外 //&数组名取出的是数组的地址 //sizeof(数组名)计算的是数组的总大小 //计算数组中的元素的大小 printf("%d\n", sizeof(arr[0]));//打印结果为:4 printf("%d\n", sizeof arr[0]);//打印结果为:4 //利用sizeof求数组元素个数 //用数组总大小除以任意一个元素的大小就是数组元素个数 int sz = sizeof(arr) / sizeof(arr[0]); printf("%d\n", sz);//打印结果为:10 return 0; }

sizeof与strlen的区别:

sizeof是单目操作符,功能是求操作数类型的长度,计算的是变量所占内存空间的大小,单位是字节。

strlen是字符串操作函数,功能是计算字符串的长度,遇到\0停止计算,单位是个,使用时需要引用头文件。

五、~操作符:

该操作符的作用是对一个数的二进制为按位取反。

//~操作符 #include<stdio.h> int main() { int a = 0; //~的作用是对一个数的二进制为按位取反,0变1,1变0 //a的二进制是00000000 00000000 00000000 00000000 //~a的二进制补码是    //~a的二进制反码是 00000000 00000000 00000000 //~a的二进制原码是 00000000 00000000 00000001 printf("%d\n", ~a);//打印结果为-1 //二进制中,如果是全0,则结果为0,如果是全1,结果是-1 return 0; }

~的作用是将一个数的二进制位按位取反,即0变1,1变0。

在二进制中,如果补码全0,则原码为0。如果补码全1,则原码为-1。

六、–、++操作符:

这个操作符分为前置++、–和后置++、–,它们的运算计算规则,优先级也不一样。

//--和++操作符 #include<stdio.h> int main() { int a = 10; int b = a++; //该表达式相当于b = a; a = a + 1; //++前置时是先加加后赋值 //++后置时是先赋值后加加 int c = --b; //该表达式相当于b = b - 1; c = b; //--前置时是先减减后赋值 //--后置时是先赋值后减减 printf("%d\n", b);//打印结果为9 printf("%d\n", c);//打印结果为9 return 0; }

七、(类型)操作符:

该操作符的功能是强制类型转换。

//(类型)操作符 #include<stdio.h> int main() { float f = 3.14f; int a = f;//如果将浮点数的值直接赋值给整型值,结果会丢失数据 printf("%d\n", a);//打印结果为3 //此时可以将浮点型强制类型转换为整型 int b = (int)f; printf("%f\n", f);//打印结果为3. //可以看出强制类型转换只是一种临时的状态,并不会真正改变变量的值 return 0; }

 以上就是我这次的分享了,写的不好,请多担待。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129619.html

(0)
上一篇 2025-08-22 22:00
下一篇 2025-08-22 22:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信