前言
这是C语言的一些笔记,我会陆续上传到博客,希望对大家的学习以及复习有些帮助.
内容
【1】定义变量
数据类型 变量名;
【2】bool
#include <stdbool.h>
【3】char
1--- 占1个字节
2--- signed char a; -128 ~ 127
0000 0000 0
0111 1111 127
1111 1111 -127
1000 0000 -128
3--- unsigned char b; 0~255
【4】数据的存储
存储时: 源码 反码 补码
正数 0000 0101 0000 0101 0000 0101 char a = 5;
负数 1000 0101 1111 1010 1111 1011 char b = -5;
反码:符号位不变,其它位取反
补码:反码加一
读取时: 补码 反码 源码
【5】
char c = 129;
(存储)因为是正数,源码、反码、补码相同
源码:1000 0001
反码:1000 0001
补码:1000 0001
(读取)因为是signed类型,最高位为符号位
补码:1000 0001
反码:1000 0000
补码:1111 1111 (-127)
unsigned char d = -1;
(存储)
源码:1000 0001
反码:1111 1110
补码:1111 1111
(读取)因为是unsigned类型,都是正数
补码:1111 1111
反码:1111 1111
源码:1111 1111(255)
【6】整形数据
1--- int 占4个字节
2--- short 占2个字节
3--- long 占4字节(32位系统)
【7】浮点型数据
1--- float
1> 12.45
2> 15e-3 《==》 15*10^-3
3> 占4字节
2--- double
1> 占8字节
【8】printf
%d 整形
%c 字符型'A'
%s 字符串
%f 浮点型
【9】常量
1--- 整数形式
34 034 0x34
2--- 浮点型
23.34
3--- 指数型
13e+5 《==》 13*10^5
4--- 字符型
‘A’
5--- 字符串常量
“hello”
"A"
//字符串以‘\0’作为结束标志
6--- 定义宏
1--- #define N 5
2--- 对一个常量进行命名
【10】强制类型转换
float a = 32, b = 45;
printf(“%d\n”,(int)(a+b));
【11】运算符
1--- 算数运算符
+ - * / %(参与运算必须是整形数据)
++(自增) --(自减)
2--- 关系运算符
1. 结果只有两个:1 或 0
2. > >= < <= == !=
3--- 逻辑运算符
1. 结果只有两个:1 或 0
2. 短路原则:当一个等式可以决定整个等式的结果,就不去执行其它运算
&& 与:一假则假
|| 或:一真则真
! 非
4--- 位运算符
1> 取反 ~
2> 位与 &
3> 位或 |
4> 异或 ^ 相同为0, 不同为1
b 0000 0101
c 0000 0011
——————————
d 0000 0110
5> 位右移
d >> 1 //向右移动1位
d / 2^n
位左移
d << 2 //向左移动2位
d * 2^n
5--- 复合运算符
算数运算符、位运算符
【12】三步运算,完成数据交换
a ^= b;
b ^= a;
a ^= b;
1--- 参与运算的是变量
2--- 针对于基本数据类型
3--- 变量需要交替互换
【13】条件运算符
1--- <表达式1> ? <表达式2> : <表达式3>
2---
表达式1为真,执行表达式2;
表达式1为假,执行表达式3;
###【14】逗号表达式
逗号表达式的结果与最后一个表达式有关
【15】sizeof
求一个数据或类型占用空间的大小,以字节为单位
【16】优先级
1 ()
2 ++ -- ~ ! 从右向左
4 * / %
5 + -
关系运算符
位运算
逻辑运算
赋值运算 从右向左
,
【17】存储模型
<存储类型> <数据类型 > <变量名> ;
1--- 生命期:与程序同步,与函数同步
2--- 作用域
auto 默认存储类型
static 1> 与程序同步
2> 默认初始化为0
3> 只初始化一次
版权声明:本文为博主原创文章,转载请注明出处KidSea