C运算符优先级笔记
1. 指针数组
int *p[5];
[] 大于 *
2. 强制类型() 与 成员选择(./->)
#include <stdlib.h>typedef struct
{int data;int time;
} data_t;int main()
{data_t *p = (data_t *)malloc(sizeof(data_t));int t = (data_t *)p->time; /*focus: -> 大于 (data_t)*/free(p);return 0;
}
int t = (data_t *)p->time;
这句代码中 -> 优先级大于 (类型)强制类型转换, 上述代码编译的话,会报警告:
main.c:12:13: warning: initialization of ‘int’ from ‘data_t *’ {aka ‘struct <anonymous> *’} makes integer from pointer without a cast [-Wint-conversion]
3. 按位运算符(&/|) 与 逻辑运算符(&&/||)
if (r8->bit_mask & ie_m_present ||r9_present)
{}
位运算符 高于 逻辑运算符
4 取值运算符* vs 后置自增运算符++
int *p = (int *)malloc(sizeof(int));
*p = 10;
*p++; // ++ 先于 *
参考
优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 |
1 | [] | 数组下标 | 数组名[常量表达式] | 左到右 | |
() | 圆括号 | (表达式)/函数名(形参表) | |||
. | 成员选择(对象) | 对象.成员名 | |||
-> | 成员选择(指针) | 对象指针->成员名 | |||
2 | - | 负号运算符 | -表达式 | 右到左 | 单目运算符 |
(类型) | 强制类型转换 | (数据类型)表达式 | |||
++ | 前置自增运算符 | ++变量名 | 单目运算符 | ||
++ | 后置自增运算符 | 变量名++ | 单目运算符 | ||
-- | 前置自减运算符 | --变量名 | 单目运算符 | ||
-- | 后置自减运算符 | 变量名-- | 单目运算符 [4] | ||
* | 取值运算符 | *指针变量 | 单目运算符 | ||
& | 取地址运算符 | &变量名 | 单目运算符 | ||
! | 逻辑非运算符 | !表达式 | 单目运算符 | ||
~ | 按位取反运算符 | ~表达式 | 单目运算符 | ||
sizeof | 长度运算符 | sizeof(表达式) | |||
3 | / | 除 | 表达式/表达式 | 左到右 | 双目运算符 |
* | 乘 | 表达式*表达式 | 双目运算符 | ||
% | 余数(取模) | 整型表达式/整型表达式 | 双目运算符 | ||
4 | + | 加 | 表达式+表达式 | 左到右 | 双目运算符 |
- | 减 | 表达式-表达式 | 双目运算符 | ||
5 | 左移 | 变量 | 左到右 | 双目运算符 | |
>> | 右移 | 变量>>表达式 | 双目运算符 | ||
6 | > | 大于 | 表达式>表达式 | 左到右 | 双目运算符 |
>= | 大于等于 | 表达式>=表达式 | 双目运算符 | ||
小于 | 表达式 | 双目运算符 | |||
小于等于 | 表达式 | 双目运算符 | |||
7 | == | 等于 | 表达式==表达式 | 左到右 | 双目运算符 |
!= | 不等于 | 表达式!= 表达式 | 双目运算符 | ||
8 | & | 按位与 | 表达式&表达式 | 左到右 | 双目运算符 |
9 | ^ | 按位异或 | 表达式^表达式 | 左到右 | 双目运算符 |
10 | | | 按位或 | 表达式|表达式 | 左到右 | 双目运算符 |
11 | && | 逻辑与 | 表达式&&表达式 | 左到右 | 双目运算符 |
12 | || | 逻辑或 | 表达式||表达式 | 左到右 | 双目运算符 |
13 | ?: | 条件运算符 | 表达式1? 表达式2: 表达式3 | 右到左 | 三目运算符 |
14 | = | 赋值运算符 | 变量=表达式 | 右到左 | |
/= | 除后赋值 | 变量/=表达式 | |||
*= | 乘后赋值 | 变量*=表达式 | |||
%= | 取模后赋值 | 变量%=表达式 | |||
+= | 加后赋值 | 变量+=表达式 | |||
-= | 减后赋值 | 变量-=表达式 | |||
左移后赋值 | 变量 | ||||
>>= | 右移后赋值 | 变量>>=表达式 | |||
&= | 按位与后赋值 | 变量&=表达式 | |||
^= | 按位异或后赋值 | 变量^=表达式 | |||
|= | 按位或后赋值 | 变量|=表达式 | |||
15 | , | 逗号运算符 | 表达式,表达式,… | 左到右 | 从左向右顺序运算 |
相关文章:

移动应用开发—— 如何搭建开发大型的应用架构?
什么是一个好的应用架构?怎么才能搭建大型的应用架构?其实每个人在工作几年之后都会有这个疑问,都在寻求好点的框架,那么小编我总结一下我的经验给大家。 其实对于客户端,一个好的应用架构,复杂度不亚于服务…

4104 oracle 数据文件名,Oracle 11g 常遇到ora-01034错误,这是为什么?
Errors in file d:\app\gerry\diag\rdbms\orcl\orcl\trace\orcl_psp0_5252.trc:ORA-27300: OS system dependent operation:CreateThread failed with status: 8ORA-27301: OS failure message: 存储空间不足,无法处理此命令。ORA-27302: failure occurred at: ssth…

Linux(CentOS6.5)中安装maven
Linux(CentOS6.5)中安装maven 1.上传相关包(*.tar.gz等) 使用相关软件上传或用Xshell连接后下载命令:yum install lrzsz 2.安装maven 1> 官网下载apache-maven-3.6.0-bin.tar.gz压缩包,上传到CentOS上(目录自选)。官网地址…

Spring+Hibernate项目在weblogic中部署的一些问题
2019独角兽企业重金招聘Python工程师标准>>> Hibernate JPA Jar包冲突,解决方法有两种, 第一种:将hibernate-jpa-2.0-api-1.0.1.Final.jar复制到当前weblogic域所使用的jdk目录下的\jdk160_29\jre\lib\ext目录下。 第二种…

Oracle語句大全
1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码? administrator/administrator 3. oracle 8.0.5怎么创建数据库? …

怎么编写段错误(Segmentation fault)的程序
On Unix-like operating systems, a process that accesses invalid memory receives the SIGSEGV signal. On Microsoft Windows, a process that accesses invalid memory receives the STATUS_ACCESS_VIOLATION exception. 1.最常见的SEGV: 访问0地址 #include <stdio.h…

aix oracle11g 静默安装包,10g for AIX 静默安装
1 操作系统检查版本:oslevel -s位数:lslpp -L | /usr/bin/grep bos.64bit (软件位数)getconf KERNEL_BITMODE (硬件位数)2 用户检查用户: id oracleUMASK设置: 022环境变量:LD_LIBRARY_PATH ,LIBPATH&…

Html_div圆角
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head><title>CSS3实现DIV圆角 - CSS3教…

2022-2028年中国自热米饭市场竞争策略及行业投资潜力预测报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国自热米饭行业市场行业相关概述、中国自热米饭行业市场行业运行环境、分析了中国自热米饭行…

使用getopt处理shell脚本的参数
getopt命令并不是bash的内建命令,它是由util-linux包提供的外部命令。相比较bash 的内置命令,getopt不只支持短参-s,还支持--longopt的长参数,甚至支持-longopt的简化参数。getopt可以用于tcsh其它的shell。现在就以系统自带的帮助…

Java基础教程——包装类
Java出道之时,自诩为“纯面向对象的语言”,意思是之前的所谓“面向对象语言”不纯。 但是,有人指责Java也不纯——8种基本类型并非类类型。为此,Java为他们提供可对应的类类型,是为“包装类”。 包装类 Java的八种基本…

linux kernel list_head
Play with kernel list_head, three exampleshttps://www.fatalerrors.org/a/play-with-kernel-list_head-three-examples-of-super-cattle.html一篇介绍linux 内核链表的非常精彩的文章。

oracle rman实时备份吗,ORACLE-RMAN自动备份和恢复
以下介绍的是每周1-6增量备份,每周日全量备份。通过系统启动自动化任务[oracleorcl ~]$ crontab -l10 00 * * 0 /home/scripts/rmanlevel0.sh10 00 * * 1,2,3,4,5,6 /home/scripts/rmanlevel1.sh30 00 * * * /home/oracle/report/awr.sh[oracleorcl ~]$ cat /home…

hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid1001&cid621Description Betty owns a lot of ponds, some of them are connected with other ponds by pipes, and there will not be more than o…

CentOS6安装nodejs
Nodejs是JavaScript的一种运行环境,是一个服务端的JavaScript解释器。 NPM是Nodejs的包管理器。 Nodejs包含npm,所以安装完nodejs后npm默认也被安装。 安装步骤: # /usr/local/srcwget http://nodejs.org/dist/v6.7.0/node-v6.7.0-linux-…

Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers
參考:http://www.cnblogs.com/chanme/p/3843859.html 然后我看到在别人的AC的方法里还有这么一种神方法,他预先设定了一个阈值K,当当前的更新操作数j<K的时候,它就用一个类似于树状数组段更的方法,用一个 d数组去存内容&#x…

Java 基本概念
Java 基本概念 1. Java 语言的优点? 简单、高效 Java 语言与 C 类似,如果用户了解 C 和面向对象的概念,就可以很快编写出 Java 程序;此外,Java 又不同于诸如 C 语言提供的各种各样的方法,它只提供了基本的方法&#x…

list_for_each_safe
list_for_each_safeBidirect-list list_for_each_safe().https://biscuitos.github.io/blog/LIST_list_for_each_safe/

oracle恢复是怎么看进度,Oracle中查看慢查询进度的脚本分享
Oracle一个大事务的sql往往不知道运行到了哪里,可以使用如下sql查看执行进度。代码如下:404_6set linesize 400;H_404_6set pagesize 400;H_404_6col sql_text format a100;H_404_6col opname format a15;H_404_6SELECT se.sid,H_404_6opname,H_404_6TRUNC (sofar / totalwork …

第三周 9.13-9.19
9.13 长春OL。 9.14-9.15 什么都没干。 9.16-9.17 补题。 9.18 什么都没干。 9.19 沈阳OL。 本周就是什么都没干。转载于:https://www.cnblogs.com/Aguin/p/4805509.html

vue-devTools插件安装流程
vue-devTools插件安装流程 本文主要介绍 vue的调试工具 vue-devtools 的安装和使用 工欲善其事, 必先利其器, 快快一起来用vue-devtools来调试开发你的vue项目吧 安装: 1.到github下载:(下载一定要记得是master环境的代码,默认克隆后进入…

基于ipfire的open***功能--client to net (Roadwarrior)配置(一)
Client-to-Net configuration (Roadwarrior)全局配置第一步应该是生成服务证书来激活ipfire上的open***。完成这个后,全局配置就可以使用了。为了激活open***所需的接口,open***服务监听的地方,你需要勾选界面里的方框。如何勾选,…

oracle update from多表性能优化一例
这几天测试java内存数据库,和oracle比较时发下一个update from语句很慢,如下: update business_newset fare1_balance_ratio (select BALANCE_RATIO from bfare2where bfare2.exchange_type business_new.exchange_type andbfa…

Sorry, Sarah
Sorry, Sarah
C#中Winform程序中如何实现多维表头【不通过第三方报表程序】
问题:C#中Winform程序中如何实现多维表头。 在网上搜了很多方法,大多数方法对于我这种新手,看的都不是很懂。最后在新浪博客看到了一篇比较易懂的文章:【DataGridView二维表头与合并单元格】 大体的思路如下: 1.新建一…

斗地主发牌编程PHP,JAVA代码之斗地主发牌详解
package com.oracle.demo01;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Map;public class Doudizhu {public static void main(String[] args) {//1.创建扑克牌MapMap pookernew HashMap();//创建所有key所在的容器A…

2022-2028年中国自动化设备市场研究及前瞻分析报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国自动化设备行业市场行业相关概述、中国自动化设备行业市场行业运行环境、分析了中国自动化…

转发:某些函数需要将其一个或多个实参连同类型不变地转发给其他函数
16.47 编写你自己版本的翻转函数,通过调用接受左值和右值引用参数的函数来测试它。 #include<iostream> #include<string> #include<utility> using namespace std;template <typename T> int compare(const T &a ,const T &b) {if…

pycharm远程调试或运行代码
第一步:开始 第二步:设置远程服务器 第三步,查看 第四步,选择解释器,和指定文件映射路径(相对上一步指定的相对路径) 转载于:https://www.cnblogs.com/jeshy/p/11182359.html
LTE随机接入过程
随机接入的基本流程 Msg3和Msg4只有基于竞争的随机接入才存在,之所以叫Msg3/Msg4是因为不同的随机接入情况,Msg3/Msg4的消息不相同(本文稍后介绍)。 下图中的参数<ra-ResponseWindowSize>和<mac-ContentionResolutionTimer>来自SIB2中的rach…