文档介绍:C语言基础
C语言大小写有区别
a&255 a&&255 a<<4
C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。当整型量按字符型量处理时,只有低八位字节参与处理
☆数据类型转换
自动转换:向高精度数据类型转换、向有符号数据类型转
强制转换:float c; b=(int)c;
逗号表达式
表达式1,表达式2
其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
在复合语句中也可定义变量,其作用域只在复合语句范围内。
main()
{
int s,a;
……
{
int b;
s=a+b;
……/*b作用域*/
}
……/*s,a作用域*/
}
注解:// /* */
如不涉及负数运算,尽量采用无符号类型,尤其unsigned char
预处理命令
#include < > #include “”
#define #undef
带参宏定义#define MAX(a,b) (a>b)?a:b
max=MAX(x,y);
#define SQ(y) y*y
sq=SQ(a+1);
#ifdef #indef #else #endif
#asm endasm
#ifdef 标识符或常量表达式或#ifndef 标识符
程序段1 。。。
#else
程序段2
#endif
条件编译包含在函数中,标识符为#define是否定义过,常量表达式是否为1(0);可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。
☆
typedef 原类型名新类型名;
typedef struct stu
{ char name[20];
int age;
char sex;
} STU;
STU body1,body2;
typedef char NAME[20];
NAME a1,a2,s1,s2;
宏定义是由预处理完成的,而typedef则是在编译时完成的。
☆
☆!(非)
算术运算符
关系运算符
逻辑运算符
赋值运算符
优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[]
数组下标
数组名[常量表达式]
左到右
()
圆括号
(表达式)/函数名(形参表)
.
成员选择(对象)
->
成员选择(指针)
对象指针->成员名
2
-
负号运算符
-表达式
右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
++
自增运算符
++变量名/变量名++
单目运算符
--
自减运算符
--变量名/变量名--
单目运算符
*
取值运算符
*指针变量
单目运算符
&
取地址运算符
&变量名
单目运算符
!
逻辑非运算符
!表达式
单目运算符
~
按位取反运算符
~表达式
单目运算符
sizeof
长度运算符
sizeof(表达式)
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
双目运算符
%
余数(取模)
整型表达式/整型表达式
双目运算符
4
+
加
表达式+表达式
左到右
双目运算符
-
减
表达式-表达式
双目运算符
5
<<
左移
变量<<表达式
左到右
双目运算符
>>
右移
变量>>表达式
双目运算符
6
>
大于
表达式>表达式
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
表达式<表达式
双目运算符
<=
小于等于
表达式<=表达式
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&
按位与
表达式&表达式
左到右
双目运算符
9
^
按位异或
表达式^表达式
左到右
双目运算符
10
|
按位或
表达式|表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1? 表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
/=
除后赋值
变量/=表达式
*=
乘后赋值
变量*=表达式
%=
取模后赋值
变量%=表达式
+=
加后赋值
变量+=表达式
-=
减后赋值
变量-=表达式
<<=
左移后赋值