C语言 | 您所在的位置:网站首页 › r语言中的赋值符号包括 › 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\n",*pa) 打印结果的时候,应用了解引用操作符(*)。 pa 虽然说是指针,它的里边存放着a的地址,不过它可把自己没有忘啊,它也有自己的地址,所以,通过对pa的地址进行解引用操作,仍然可以找到a所对应的值哦。 (3)sizeof操作符 sizeof操作符以字节的形式给出了其操作数所占存储空间的大小,操作数可以是一个表达式或者是括在括号内的类型名,操作数所占存储空间的大小由操作数的类型决定,从而返回一个对象或者类型所占的内存字节数。 printf("%d\n", sizeof(a));//可以这样写; printf("%d\n", sizeof(int)); //可以这样写; printf("%d\n", sizeof a); //可以这样写; printf("%d\n", sizeof int);//但不可以这样写; 在这里,添加一个小的知识点吧: 关于sizeof 和 strlen 的区别: sizeof 是C语言中的一个操作符,用于计算变量或者类型所占内存空间大小; strlen(string strlen) 是C语言中的一个函数,用于计算字符串的长度,不包括结束符"\0"; 在使用strlen函数读取字符串的时候,遇到“\0”时就停止读取,此时,“\0”前面的字符的个数就是字符串的长度,这里,“\0”不算做一个字符。这个‘\0’转义字符在任何一个字符串的结尾都会隐藏一个"\0",是字符串结束的标志。 老规矩,看代码: #include #include int main() { char arr[] = "abcdef"; printf("%d\n", strlen("abcdef")); printf("%d\n", sizeof("abcdef")); return 0; }运行结果: (4)前后置++操作符,前后置 - -操作符 前置:先给自己加(减),再使用; 后置:先使用,再给自己加(减); 看例子吧: (5)~对二进制的操作数取反操作符 比如二进制数为:1001,取反则为:0110 看代码: 三.关系操作符 > >= 成员名 举个例子: 好啦,关于C语言里操作符的介绍终于在本篇文章画上句号了,如果有错误之处,欢迎各位小伙伴们在评论区多多互动吖~
|
CopyRight 2018-2019 实验室设备网 版权所有 |