C语言学习点滴(三)

1级优先级 左结合
  () 圆括号 
  [] 下标运算符 
  -> 指向结构体成员运算符 
  . 结构体成员运算符 
2级优先级 右结合 
  ! 逻辑非运算符 
  ~ 按位取反运算符 
  ++ 自增运算符 
  -- 自减运算符 
  - 负号运算符 
  (类型) 类型转换运算符 
  * 指针运算符 
  & 地址与运算符 
  sizeof 长度运算符 
3级优先级 左结合 
  * 乘法运算符 
  / 除法运算符 
  % 取余运算符 
4级优先级 左结合
  + 加法运算符 
  - 减法运算符 
5级优先级 左结合 
  << 左移运算符 
  >> 右移运算符 
6级优先级 左结合 
  <、<=、>、>= 关系运算符 
7级优先级 左结合 
  == 等于运算符 
  != 不等于运算符 
8级优先级 左结合 
  & 按位与运算符 
9级优先级 左结合 
  ^ 按位异或运算符 
10级优先级 左结合 
  | 按位或运算符 
11级优先级 左结合 
  && 逻辑与运算符 
12级优先级 左结合 
  || 逻辑或运算符 
13级优先级 右结合 
  ? : 条件运算符

14级优先级 右结合 
  = += -= *= /= %= &= ^= |= <<= >>= 全为赋值运算符
15级优先级 左结合 
  , 逗号运算符

优先级的顺序是从上往下递增,在同等级的情况中我们要遵循[左结合/右结合]的原理

例:
if(!a>10) 
    return 1;
else
    return 0;

上面这个例子:可能我们想的时候是a>10 取反,但是这里的结果恰恰相反。

在这个例子中 ! 的优先级最大  ,先运算的 !a   ,在把运算的结果0或1 同10 进行比较。

如果我们在搞不懂优先级别的情况下,可以添加()来提升运算的优先级别。()的优先级别最高

if(!(a>10))
    return 1;
else
    return 0;

这里就是先对a>10进行比较,然后在对比较的值取反。

时间: 2024-08-06 15:05:56

C语言学习点滴(三)的相关文章

JavaScript--基于对象的脚本语言学习笔记(三)

事件处理器 1.一个数据校验表单的例程 <html> <head> <title>js练习</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> String.prototype.trim=function(){ r

Go语言学习笔记(三) [控制结构、内建函数]

日期:2014年7月21日 一.控制结构 1.Go中,只有几个控制结构,它没有do或者while循环,有for,灵活的switch语句和if,在switch中可以接受像for那样可选的初始化语句,另外Go中还提供了类型选择和多路通信转接器的select.Go的控制结构的语法和C相比有所不同,它不需要圆括号,但语句体必须总是包含在大括号内. 2.控制结构语法 1)if-else (1)if后紧跟单个条件 例如:if x > 0 {   //{必须和if在同一行,这是Go语法规定的,如果换行写,编译

C++语言学习(三)——封装(Encapsulation)

C++语言学习(三)--封装(Encapsulation) 一.封装简介 C语言等面向过程编程中,数据以及数据的相关操作函数都是分离的独立个体:在C++等面向对象编程中,数据以及数据的相关操作被设计为对象,对象包括属性(数据)和操作(函数),两者共同构成对象实体(即类实体).面向对象编程使程序更模块化,更易读易写,提升了代码重用到一个更高的层次.面向对象编程中,数据和数据的操作封装为了对象.封装可以隐藏实现细节,使得代码模块化,是把过程和数据包围起来,对数据的访问只能通过已定义的接口.封装是一种

C语言学习总结(三) 复杂类型

第五章.复杂数据类型 (数组.字符串.指针.结构体.枚举.共同体) 1.什么是数组? 概念:把具有相同类型的若干变量按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组: 按数组元素的类型不同,数组又可分为: 数值数组:用来存储数值得 字符数组:用来存储字符 ‘a’ 指针数组:用来存放指针(地址)的 结构数组:用来存放一个结构体类型的数据 按维度分类: 一维数组 二维数组 多维数组 1.一维数组 概念:所有的元素都不是数组 使用流程:定义数组---->给数组初始化---->使用数组

【GO】GO语言学习笔记三

7.数组: 几乎是最常用的数据类型了... 数组就是指一系列同一类型数据 的集合.数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数 组的长度. 常规的数组声明方法: [32]byte // 长度为32的数组,每个元素为一个字节 [2*N] struct {x , y int32} //复杂类型数组 [1000]*float32 //指针数组 [3][5]int //二维数组 [2][2][2]float64 // 等同于[2]([2]([2]float64))

C语言学习入门 (三) sizeof 函数、内存地址、数组

sizeof可以用来计算一个变量或者一个常量.一种数据类型所占的内存字节数. sizeof(10); char c = 'a'; sizeof(c); sizeof(float); 地址 1.计算机中的内存是以字节为单位的存储空间.内存的每一个字节都有一个唯一的编号,这个编号就称为地址. 凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址 2.  当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量.比如: char a = 'A';// A的ASCII

c语言学习笔记三

第三章,函数 字符串函数 //strcmp int my_strcmp(char *str1,char *str2) {   while(*str1 = = *str2)   /*不可用while(*str1++= =*str2++)来比较,当不相等时仍会执行一次++,      return返回的比较值实际上是下一个字符.应将++放到循环体中进行.*/      {         if(*str1 = = '\0') {             return 0: }         str

蓝鸥C语言学习第三天

今天主要学习了循环结构 循环结构1-while循环   格式如下: 1 while ( 条件 ) 2 { 3 语句1; 4 语句2; 5 .... 6 } 1)如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容).然后再次判断条件,重复上述过程,直到条件不成立就结束while循环 2)while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行 例如: 1 /* 2 输出十次hello world 3 */ 4 int main(

C语言学习点滴(四)

位运算表示按二进制进行的运算. 位运算首先理解二进制.二进制是指数字的每一位都是0或者1 位运算操作符<<(右移运算符) \ >>(左移运算符) 与(&)   0 & 0 = 0    1 & 0 = 0       0 & 1 = 0     1 & 1 = 1 或(|)      0 | 0 = 0      1 | 0 = 1        0 | 1 = 1        1 | 1 = 1 异或(^) 0 ^ 0 = 0     1