*和&的优先级,结合性
时间: 2023-08-18 19:10:40 浏览: 70
在 C 语言中,`*` 和 `&` 都是一元运算符,它们的优先级相同,但结合性不同。
`*` 表示取指针所指向的变量的值,是一元后缀运算符,其结合性为从右向左。例如,`*p` 表示取指针 `p` 指向的变量的值。
`&` 表示取变量的地址,是一元前缀运算符,其结合性为从右向左。例如,`&x` 表示取变量 `x` 的地址。
由于 `*` 和 `&` 的优先级相同,所以它们在表达式中出现时,需要根据结合性来确定运算次序。例如,`&*p` 表示先取指针 `p` 指向的变量的值,然后再取该值的地址,相当于 `&(*p)`,所以最终结果是指针 `p` 指向的变量的地址。
需要注意的是,如果一条语句中同时出现 `*` 和 `&`,则需要根据它们的结合性来确定运算次序,以免出现语义错误。
相关问题
c语言运算符的优先级和结合性
c语言运算符的优先级和结合性对于理解代码的运行逻辑非常重要。C语言运算符的优先级指的是哪些运算符会先于哪些运算符进行计算,而结合性指的是当出现多个相同优先级的运算符时,它们的计算顺序是从左到右还是从右到左。
在C语言中,一元运算符的优先级最高,其次是乘法、除法和取模运算,接着是加法、减法和取地址运算,然后是关系运算符、逻辑运算符和赋值运算符,最后是逗号运算符。当出现相同优先级的运算符时,通常是从左到右进行计算,但也有一些例外,比如赋值运算符的结合性是从右到左。
了解C语言运算符的优先级和结合性可以帮助程序员编写更加清晰、易读和易维护的代码。同时,也可以避免一些因为优先级或结合性不当导致的逻辑错误。因此,在编写代码时,需要谨慎考虑运算符的优先级和结合性,以保证程序的正确性和可靠性。
c语言运算符优先级和结合性一览表.pdf
"C语言运算符优先级和结合性一览表.pdf"提供了关于C语言中各种运算符的优先级和结合性的信息。在C语言中,不同的运算符具有不同的优先级和结合性,这决定了它们在表达式中的执行顺序。
该表格列出了C语言中常见运算符的优先级,从高到低排列。优先级高的运算符会先于优先级低的运算符执行。结合性则指定了当两个具有相同优先级的运算符出现在同一表达式时的结合方式,包括左结合、右结合、以及无结合性。
常见的C语言运算符包括算术运算符(如加法、减法、乘法和除法)、关系运算符(如等于、大于和小于等等)、逻辑运算符(如与、或、非)、赋值运算符以及位运算符(如按位与、按位或等)等等。这些运算符在表达式中的使用需要遵循优先级和结合性规则,以确保得到正确的结果。
通过检查"C语言运算符优先级和结合性一览表.pdf",可以了解每个运算符的优先级和结合性,从而正确地构建C语言表达式。这对于程序员来说是非常重要的,因为运算符的错误使用可能会导致意外的结果或错误的程序行为。
总而言之,这份表格提供了C语言中各种运算符优先级和结合性的参考,使程序员能够根据需要正确地使用运算符,以获得正确的计算结果。