C 运算符优先级

在 C 语言中,运算符的优先级决定了在表达式中运算符的计算顺序。以下是 C 语言中运算符优先级表,按从高到低的顺序排列:

1. **括号**: `()` 
2. **后缀运算符**: `[]` (数组下标), `()` (函数调用), `.` (成员访问), `->` (指向成员访问), `++` (后缀自增), `--` (后缀自减)
3. **一元运算符**: `++` (前缀自增), `--` (前缀自减), `+` (正号), `-` (负号), `!` (逻辑非), `~` (按位取反), `(type)` (类型转换), `*` (指针解引用), `&` (取地址), `sizeof` (求大小)
4. **乘法和除法**: `*` (乘法), `/` (除法), `%` (取模)
5. **加法和减法**: `+` (加法), `-` (减法)
6. **移位运算符**: `<<` (左移), `>>` (右移)
7. **关系运算符**: `<` (小于), `<=` (小于等于), `>` (大于), `>=` (大于等于)
8. **相等运算符**: `==` (等于), `!=` (不等于)
9. **按位与**: `&`
10. **按位异或**: `^`
11. **按位或**: `|`
12. **逻辑与**: `&&`
13. **逻辑或**: `||`
14. **条件运算符**: `?:`
15. **赋值运算符**: `=`, `+=`, `-=`, `*=`, `/=`, `%=`, `<<=`, `>>=`, `&=`, `^=`, `|=`
16. **逗号运算符**: `,`

在表达式中,高优先级的运算符会先于低优先级的运算符执行。如果运算符的优先级相同,则按照其结合性(左结合或右结合)决定计算的顺序。

() 的优先级最高,[ ]  第二,  *   ,&第三。所以:

int   *p;     //一个指针

int  *p[3];    //三个指针

int   *p[2][3];     //两行三列共6个指针

int    (*p)[3];      //一个行的指针,但此行含三个元素

int   (*p)[2][3];   //一个2×3的指针

#include <stdio.h>
#include <stdlib.h>

int main(void){
	
	int p2[3]={1,2,3};
	int *p22[3]={p2,p2+1,p2+2};
        int *p33=p2;

	printf("%d\n",*p22[1]);

	int  p4[2][3]={
		      {1,2,3},
		      {11,22,33}
		};
	
	int (*p41)[3]=p4;
 	printf("%d\n", *(*(p41+1)+1));
        
	int *s=&p4[0][0];
	int  *p42[6]={s,s+1,s+2,s+3,s+4,s+5};
   	printf("%d\n",*p42[5]);

	int  *p5[2][3]={{s,s+1,s+2},
		{s+3,s+4,s+5}};

	printf("%d\n",*p5[1][0]);
	return 0;
}


相关推荐

  1. C 运算符优先级

    2024-06-13 21:42:04       29 阅读
  2. C++ 中的运算符优先级

    2024-06-13 21:42:04       35 阅读
  3. C语言自学笔记3-----C语言运算符优先级

    2024-06-13 21:42:04       41 阅读
  4. 【保姆级讲解C语言中的运算符优先级

    2024-06-13 21:42:04       36 阅读
  5. MySQL 运算符以及优先级

    2024-06-13 21:42:04       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 21:42:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 21:42:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 21:42:04       82 阅读
  4. Python语言-面向对象

    2024-06-13 21:42:04       91 阅读

热门阅读

  1. windows执行定时任务

    2024-06-13 21:42:04       33 阅读
  2. 使用Kube-Bench对Kubernetes进行安全检测

    2024-06-13 21:42:04       40 阅读
  3. PyQt5 强制退出进程

    2024-06-13 21:42:04       68 阅读
  4. jquery.PrintArea.js 设置不打印

    2024-06-13 21:42:04       31 阅读
  5. Linux 和 分区

    2024-06-13 21:42:04       33 阅读
  6. node express配置redis

    2024-06-13 21:42:04       37 阅读
  7. D. Yet Another Minimization Problem(dp,数学公式推导)

    2024-06-13 21:42:04       96 阅读