您现在的位置是:首页 >技术杂谈 >C语言-【操作符二】网站首页技术杂谈
C语言-【操作符二】
Hello,大家好,前面的文章里边介绍了算术、赋值以及移位操作符,这篇文章呢,就介绍一下C语言中的其他操作符吧~
目录
一.位操作符
这类操作符可以直接对内存中存储的二进制位进行操作,但前提是,它所操作的对象只能是整型。因为我们知道,整型和浮点型在内存中的存储方式是完全不一样的,如果根据操作整型的方式去操作浮点数,那不得糟糕透顶啊,哈哈哈哈哈。前面的文章中讲到的移位操作符也是位操作符中的一种哦~
⚠:在移位操作中,可千万不要移动负数位,这个是未标准定义的。
(1)& :按位与(只要有0时就为0,只有同时为1时才为1);
(2)/ :按位或(只有同时为0时才为0,其余情况都为1);
(3)^ : 按位异或(对应的二进制位,相同为0,相异为1);
举个简单的例子吧:
二.单目操作符
顾名思义,单目嘛,也就是只接受一个操作数的操作符,我们就当它只有一个眼睛吧,哈哈哈,主要有:
//单目操作符 ! //逻辑反操作 - //取负值 + //取正值 & //取地址 sizeof //操作数的类型长度(以字节为单位) ~ //对一个数的二进制按位取反 -- //前置减减,后置减减 ++ //前置加加,后置加加 * //间接访问操作符(解引用操作符) (类型) //强制类型转换
注:这里的&,*应用于指针;
sizeof 是操作符,不是函数!
举例子说明最直观了哦:
(1) !操作符
(2) &取地址操作符
从上面的例子就可以看到,
int a = 10;
int *pa = &a;
在这个代码中,希望大家能够正确的理解它们的含义哦。
不过,前面的这两行代码也可以写成:
int *pa;
pa = &a;
运行结果也是一样的。只是在后面的这种方式中,pa只是一个定义为int型的指针,pa = &a 它的前面没其他多余的标识,但是在printf("%d ",*pa) 打印结果的时候,应用了解引用操作符(*)。
pa 虽然说是指针,它的里边存放着a的地址,不过它可把自己没有忘啊,它也有自己的地址,所以,通过对pa的地址进行解引用操作,仍然可以找到a所对应的值哦。
(3)sizeof操作符
sizeof操作符以字节的形式给出了其操作数所占存储空间的大小,操作数可以是一个表达式或者是括在括号内的类型名,操作数所占存储空间的大小由操作数的类型决定,从而返回一个对象或者类型所占的内存字节数。
printf("%d ", sizeof(a));//可以这样写;
printf("%d ", sizeof(int)); //可以这样写;
printf("%d ", sizeof a); //可以这样写;
printf("%d ", sizeof int);//但不可以这样写;
在这里,添加一个小的知识点吧:
关于sizeof 和 strlen 的区别:
sizeof 是C语言中的一个操作符,用于计算变量或者类型所占内存空间大小;
strlen(string strlen) 是C语言中的一个函数,用于计算字符串的长度,不包括结束符"