*p++和*(p++)的区别
*p++和*(p++)的区别是运算顺序不同。
*p++由于*和++优先级同级,满足右结合性,从右至左。p先取值,因为此时语句还没执行完,p未被赋值,故*p++所取的值为a[0],*p++等同于*(p++)。
*(p++),是先对指针P进行++运算,然后再取取值,由于*和++的运算优先级一样,且是右结合。故*p++相当于*(p++),p先与++结合,然后p++整体再与*结合。
但是,因为++后置的时候,本身含义就是先运算后增加1(运算指的是p++作为一个整体与前面的*进行运算;增加1指的是p+1),所以实际上*p++符号整体对外表现的值是*p的值,运算完成后p再加1。
C语言运算顺序的重要性
C语言的计算顺序是非常重要的。在编写程序时,我们需要了解C语言的计算顺序,以确保程序的正确性和可靠性。我们需要注意运算符的优先级和结合性,并使用括号来改变计算顺序。我们还可以使用逗号运算符来分隔多个表达式。只有深入了解C语言的计算顺序,我们才能编写出高效、可靠的程序。
C语言的计算顺序是从左到右。这意味着,当我们编写一个表达式时,C语言会按照从左到右的顺序计算表达式中的每个操作数和运算符。在C语言中,有一些运算符的优先级比其他运算符更高。例如,乘法和除法的优先级比加法和减法更高。这意味着,在一个表达式中,乘法和除法会先于加法和减法进行计算。
2023-07-25 广告