目录
一、数据类型
1.基本数据类型
类型 符号 关键字 整型 有 (signed)int (signed)short (signed)long 无 unsigned int
unsigned short unsigned long 实型 有 float 有 double 字符型 有 char 无 unsigned char 数据类型的所占位(1位=8字节)可以用代码:
#include <stdio.h> #include <stdlib.h> int main() { printf("int =%ld\n",sizeof(int)); printf("short int =%ld\n",sizeof(short int)); printf("long int =%ld\n",sizeof(long int)); printf("unsigned int =%ld\n",sizeof(unsigned int)); printf("unsigned short int =%ld\n",sizeof(unsigned short int)); printf("unsigned long int =%ld\n",sizeof(unsigned long int)); printf("float =%ld\n",sizeof(float)); printf("double =%ld\n",sizeof(double)); printf("char =%ld\n",sizeof(char)); printf("unsigned char =%ld\n",sizeof(unsigned char)); exit(0); }
注:数据类型所占字节数随机器硬件不同而不同
2.常量与变量
常量
整形常量, 实型常量,字符常量,字符串常量,标识常量
字符常量:单引号引起来的单个字符和转译字符。
例 'a' '\n'
字符串常量:双引号引起来的0个或多个字符和转译字符。
例 "" "abc" "a\n"
变量
[存储类型] 数据类型 标识符 = 值
[存储类型]:(可省)在哪个位置给变量分配其存储空间
auto static register extern
数据类型:基本类型 构造类型 指针类型 void
标识符:由数字,字母,下划线组成,不能以数字开头,尽量见名生义。
值:与其数据类型相匹配。
1)局部变量默认为auto型。
2)局部static变量具有全局寿命,作用域仅限于局部区域。
3)局部static变量具有可继承性,编译时赋初值,只赋一次。而auto无可继承性,每次函数调用都会赋值。
4)extern不是定义变量,而是对变量进行声明。
注:全局变量不是作用与程序从头到尾,而是作用于定义的位置到程序结束。
二、运算符
1.算数运算符
+ - * / % ++ --
1)/ 整型 / 整型 结果向下取整
例 5 / 2= 2
浮点型 / 整型 结果为浮点型
例 5.0 / 2 = 2.5
2)% 两边必须是整型
3)++自增 --自减
原则:变量名在前:先使用变量值,再进行自增/减
符号在前,先自增/减,再使用变量值例 int i = 3 , j = 5 , t;
t = i++ ; => t = i;i = i+1 => t = 3 i = 4
t = --j; => j = j-1;t = j; => t = 4 j = 4
t = i++ + --j ; => --j; t=i+j; i++; =>j=4;t=7;i=4
2.关系运算符
< <= > >= == !=
结果:0(假) !0(真)
例 以下例子用1表示真
int i = 3 , j = 5 , t;
i < j 1 i = j 0 ++i != --j 0
3.逻辑运算符
! && ||
&& 一假全假,全真为真
例 int i = 3 , j = 5;
i < j && j > 2 ->1
i > j && j < 2 ->0
|| 一真为真,全假为假
例 int i = 3 , j = 5;
i = j && j < 2 ->0
i > j && j < 2 ->1
&& ||具有短路特性
例 int a=1,b =2,c=3,d=4,m=1,n=1;
(m = a > b) && (n = c > d);
m = 0 n = 1
由于m=a>b为0(假),所以&&后面不执行,因此n的值依然为1
4.赋值运算符
= += -= *= /=
例 a += b ->a = a + b
int a = 4;
a += a -= a *= a /= 4;
过程:a /= 4 ->a = a / 4 a=1
a *= a ->a = a * a a=1
a -= 4 ->a = a- a a=0
a += a ->a = a + a a=0
结果:a = 0
5.条件运算符
op1 ? op2 : op3
op1成立执行op2 不成立执行op3
例 int i = 3 , j = 5 , t;
t = i > j ? i : j;
结果:t = 5
6.逗号运算符
, 并列
例 int i = 3 , j = 5 , t;
t = i + j , j + 10;
结果:t = 15
7.强制类型转换
(TYPE)
例 int i ; float j = 5.9 ; i = (int)f;
结果 i = 5
数据类型强转时本身的数据类型不变 只是暂时用一下
注:本文是通过听李慧芹老师上课记的笔记,如有理解不到位请多多包涵,也请多多指教。