c语言中与或的优先级
什么是优先级? 优先级就是当表达式中有多个运算符时,先计算谁,后计算谁。打个比方,在四则运算中乘除的优先级就高于加减。 但是C语言中的运算符除了加减乘除还有很多,我们也没必要将所有运算符的优先级都记住,这里列出来各个运算符的优先级表,实在需要用到的时候查一下表就行了。而且实际上在编程的时候需要考虑优先级的情况很少,因为如果不知道优先级高低的话,加一个括号就行了,因为括号的优先级是最高的。 比如:k = (j > i) && (8 == i) 根据优先级的高低,完全可以写成:k = j > i && 8 == i 第一种写法是比较提倡的,因为一看就知道先计算谁后计算谁,节省了大家的时间还不容易出错。而且加圆括号也是一种编程规范,因为程序不只是写给自己看。 此外运算符还有“目”和“结合性”的概念。“目”就是眼睛的意思,一个运算符需要几个数参与就归为“几目”。C语言中大多数运算符都是双目的,比如 和 运算符;也有单目和三目的,单目运算符如逻辑非 ( !
1 );三目运算符即条件运算符,?:也是C语言中的唯一一个三目运算符。 说完了“目”的概念,再来说一说“结合性”。先来煮个栗子:1 +
2 ×
3 /
4 上式中乘法和除法的优先级相同,但计算的时候是从左往右,所以乘和除的结合性就是从左往右,so easy! C语言中大多数运算符的结合性都是从左往右,只有三个运算符是从右往左的。一个是单目运算符,另一个是三目运算符,还有一个就是双目运算符中的赋值运算符 。运算符的“结合性”也不需要死记硬背,在不断使用中就记住了。运算符优先级和结合性一览表上表中可以总结出以下规律:结合方向只有三个是从右往左,其余都是从左往右。逗号运算符的优先级最低。对于优先级,有一个普遍规律:算数运算符>关系运算符>逻辑运算符>赋值运算符。逻辑运算符中的“逻辑非!”除外。附录A:一些容易出错的优先级问题
c语言其他字符怎么表示
C语言中并没有字符串这个类型,表示字符串时,需要使用字符数组,或字符指针。即char型数组,或char *指针。
如
char str[100] = "hello world";
就是一种字符串的表示方法。
另外,在C语言中,约定用字符数组表示字符串时,以'\0'为字符串结尾,即ascii码0。
C语言中按位与(&)运算符是什么意思
位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以用&进行运算。举个例子,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。C语言提供了六种按位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移也就是与上0相当于把那位数清0,与上1相当于把那位保留。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。不同的变量类型可以用结构体(struct)组合在一起。只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。部份的变量类型可以转换,例如整型和字符型变量。通过指针(pointer),C语言可以容易的对存储器进行低级控制。预编译处理(preprocessor)让C语言的编译更具有弹性。