c语言的优先级
优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 |
1 | [] | 数组下标 | 数组名[常量表达式] | 左到右 |
|
() | 圆括号 | (表达式)/函数名(形参表) |
| ||
. | 成员选择(对象) | 对象.成员名 |
| ||
-> | 成员选择(指针) | 对象指针->成员名 |
| ||
2 | - | 负号运算符 | -表达式 | 右到左 | 单目运算符 |
(类型) | 强制类型转换 | (数据类型)表达式 |
| ||
++ | 自增运算符 | ++变量名/变量名++ | 单目运算符 | ||
-- | 自减运算符 | --变量名/变量名-- | 单目运算符 | ||
* | 取值运算符 | *指针变量 | 单目运算符 | ||
& | 取地址运算符 | &变量名 | 单目运算符 | ||
! | 逻辑非运算符 | !表达式 | 单目运算符 | ||
~ | 按位取反运算符 | ~表达式 | 单目运算符 | ||
sizeof | 长度运算符 | sizeof(表达式) |
| ||
3 | / | 除 | 表达式/表达式 | 左到右 | 双目运算符 |
* | 乘 | 表达式*表达式 | 双目运算符 | ||
% | 余数(取模) | 整型表达式/整型表达式 | 双目运算符 | ||
4 | + | 加 | 表达式+表达式 | 左到右 | 双目运算符 |
- | 减 | 表达式-表达式 | 双目运算符 | ||
5 | << | 左移 | 变量<<表达式 | 左到右 | 双目运算符 |
>> | 右移 | 变量>>表达式 | 双目运算符 | ||
6 | > | 大于 | 表达式>表达式 | 左到右 | 双目运算符 |
>&#61; | 大于等于 | 表达式>&#61;表达式 | 双目运算符 | ||
< | 小于 | 表达式<表达式 | 双目运算符 | ||
<&#61; | 小于等于 | 表达式<&#61;表达式 | 双目运算符 | ||
7 | &#61;&#61; | 等于 | 表达式&#61;&#61;表达式 | 左到右 | 双目运算符 |
!&#61; | 不等于 | 表达式!&#61; 表达式 | 双目运算符 | ||
8 | & | 按位与 | 表达式&表达式 | 左到右 | 双目运算符 |
9 | ^ | 按位异或 | 表达式^表达式 | 左到右 | 双目运算符 |
10 | | | 按位或 | 表达式|表达式 | 左到右 | 双目运算符 |
11 | && | 逻辑与 | 表达式&&表达式 | 左到右 | 双目运算符 |
12 | || | 逻辑或 | 表达式||表达式 | 左到右 | 双目运算符 |
13 | ?: | 条件运算符 | 表达式1? 表达式2:表达式3 | 右到左 | 三目运算符 |
14 | &#61; | 赋值运算符 | 变量&#61;表达式 | 右到左 |
|
/&#61; | 除后赋值 | 变量/&#61;表达式 |
| ||
*&#61; | 乘后赋值 | 变量*&#61;表达式 |
| ||
%&#61; | 取模后赋值 | 变量%&#61;表达式 |
| ||
&#43;&#61; | 加后赋值 | 变量&#43;&#61;表达式 |
| ||
-&#61; | 减后赋值 | 变量-&#61;表达式 |
| ||
<<&#61; | 左移后赋值 | 变量<<&#61;表达式 |
| ||
>>&#61; | 右移后赋值 | 变量>>&#61;表达式 |
| ||
&&#61; | 按位与后赋值 | 变量&&#61;表达式 |
| ||
^&#61; | 按位异或后赋值 | 变量^&#61;表达式 |
| ||
|&#61; | 按位或后赋值 | 变量|&#61;表达式 |
| ||
15 | , | 逗号运算符 | 表达式,表达式,… | 左到右 | 从左向右顺序运算 |
说明&#xff1a;
同一优先级的运算符&#xff0c;运算次序由结合方向所决定。
优先级口诀
括号成员第一&#xff1b; 括号运算符[]() 成员运算符. ->
全体单目第二&#xff1b; 所有的单目运算符比如&#43;&#43; -- &#43;(正) -(负) 指针运算*&
乘除余三,加减四&#xff1b; 这个"余"是指取余运算即%
移位五&#xff0c;关系六&#xff1b; 移位运算符&#xff1a;<<>> &#xff0c;关系&#xff1a;> <>&#61; <&#61; 等
等于(与)不等排第七&#xff1b; 即&#61;&#61; !&#61;
位与异或和位或&#xff1b; 这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十&#xff1b;
逻辑或跟与&#xff1b; 逻辑运算符:|| 和 &&
十二和十一&#xff1b; 注意顺序:优先级(||) 底于 优先级(&&)
条件高于赋值, 三目运算符优先级排到 13 位只比赋值运算符和","高
逗号运算级最低&#xff01; 逗号运算符优先级最低
scanf&#xff1a;
scanf()函数返回成功赋值的数据项数&#xff0c;读到文件末尾出错时则返回EOF。
1 | int scanf ( const char *format,...); |
C
语言中的
return, exit, break, continue
。前两个函数使用的同时通常都会带上程序退
出时的状态码&#xff0c;标准
C
中有
EXIT_SUCCESS
和
EXIT_FAILURE
两个宏&#xff0c;位于
/usr/include/stdlib.h
中。
是这样定义的的&#xff1a;
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
strncpy&#xff1a;
strncpy 是 C语言的库函数之一&#xff0c;来自 C语言标准库&#xff0c;定义于 string.h&#xff0c;char *strncpy(char *dest, char *src, int n)&#xff0c;把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中&#xff0c;并返回dest。