上一页 下一个

C编程的基础知识

运算符优先级

C包含许多运营商,因为运算符优先级的方式工作,多个运营商之间的交互会变得混乱。

x = 5 + 3 * 6;

广告

不是48 X接收值23日,因为在C乘法和除法有更高的优先级比加法和减法。

char * [10];

一个一个指针指向一个10个字符数组,还是10个字符的指针数组?除非你知道优先公约在C语言中,没有办法找到的。同样,在E.11我们看到,由于优先语句等* p。我= 10;不工作。相反,形式(* p)我= 10;必须使用正确的优先级。

下表从C编程语言克尼汉和里奇,显示了优先等级c .最上面的一条线具有最高的18新利最新登入优先级。

运营商结合性([-。左到右!- + + -{- + * &(铸造)sizeof右到左(在上面的线,+,-,*是一元形式)* / %左到右+ -左到右< < > >从左到右的< < = > > =左到右= = ! =从左到右和从左到右^左到右|左到右& &左到右| |左到右?:左到右= + = - = * = / = % = & = ^ = | = < < = > > =右到左,从左到右

使用这个表,你可以看到char * [10];10是一个数组指针的性格。您还可以看到为什么括号是必需的(* p)我正确处理。经过一些练习,你就会记住这个表,但时不时将不会工作,因为你已经被一个微妙的优先级问题。

特色
Baidu