c语言课堂笔记 twelve november

数据类型分类
基本数据类型(内置。编译器自带的类型) 复合数据类型(多个内置类型组成的新类型):数组、结构体(struct)、union、enum
基本类型 int 短 short ⻓ long 整型。long long char float double Void类型:void*(万能指针):多态
二 定义变量 (注意事项:编码规范)
1 变量的可读性 形容词_名词 而且是小写 int n; int sum_result; int a,b,c,d;(这种不太好)
( int quihe )严令禁止 不能用中文拼音 不会用有道词典 一定要用英文
2 循环变量 int i ; int k; 循环变量可以用单个字母 注释会影响编写⻛格 尽量只解释难的
三 基本数据类型需掌握知识点
1 各种数据类型的字节⻓度 (变量占用内存的大小) int num = 5; 注:计算机表示内存大小的单位 : 8bit位 = 1字节、16bit=2个字节=半字、32bit=4个字节=字、双 字、1024KB = 1MB、G、T
如何测量数据类型的大小?用sizeof sizeof 是一个运算符 sizeof(变量名)sizeof(数据类型) int len = sizeof(num);
Size of 计算数据类型和变量的内存大小
int len = sizeof(int);可以测数据类型的大小
Sizeof是一个运算符 不是一个函数
int len = sizeof num; 测量变量时这样写 测量类型是必须加上括号。 Int len = sizeof (int);
Unsigned long Len %ld
指针的⻓度:都是8个字节 这个类型都比较特殊 指针类型保存地址 操作系统中地址的⻓度是固定 ⻓度 由操作系统的位数决定 64位是8个字节 32位系统是four字节
数组的⻓度 :数组的⻓度 * 元素类型的⻓度
字符串的⻓度: strlen(char *src); 不统计字符串的/0,到/0暂停 Strlen统计字符串中字符的个数
2 各种数据类型的取值范围 ?
char a[1000];
for (I=0; I<1000;i++) {
a[I]= -1 -I;
}
printf(“strlen(a) = %ld\n”, strlen(a));
Return 0;
}
计算机三种吗 原码 反码 补码。计算机里保存的是补吗。

正数: 源吗 = 补吗
负数 :补吗 = 源吗取反+1 原吗 = 补吗取反+1
计算机中为什么会提出补吗存储 ?+0 -0
0 000 0000=+0 1 000 0000=-0 解决 +0 -0问题
2取反 0000 0010 1111 1101 0000 0010
0000 0010 1111 1101
000 0010
-1.25二进制
-128、
ch = ch - 1 会存在溢出 因为结果会写到之前的内存里 1 000 000
1 111 1111
0 111 1111 127
printf(“%d\n”,ch+1); 不存在溢出 结果不会回写到内存里 计算机是以补码形式保存数据 为了解决正负0问题
注 大数计算 200302000000030003020302300*203020302220020020200202 解决溢出问题
3、 signed vs unsigned
typedef关键字 给数据类型重命名
typedef unsigned int u_int
1、解决 signed 和 unsigned带来的代码移植问题 (引入typedef关键字 给数据类型 重命名 ) 2、提高了代码的可读性
3、提高了编码效率
typedef vs 宏定义
Four、 变量和常量
1 全局变量 和 局部变量:
变量的三大特点 : 字节⻓度 、生命周期&作用域、存储区域

2 作用域 可⻅范围
局部变量:在函数体里定义的变量 —所在函数 (出了函数不可⻅) 全局变量:在函数体外定义的变量-整个全局?(需要用extern外部声明)
extern
3生命周期:所占内存空间的分配-释放的过程
局部变量 所在的函数体执行时 分配空间 执行结束 释放空间 全局变量:c语言执行的第一句话是全局变量 所在程序执行时 分配空间 执行结束 释放空间 4、存储区域:
局部变量 :存储在栈空间 全局变量:存储在数据段
物理内存属于稀缺资源 写实复制 用的时候 写入和提取 只有修改时才回写 mmu 虚拟内存到物理内存的映射
1G给 内核 3G给用户 栈空间(局部变量 函数形参 自动变量) (未初始化回为随机值) gcc 4.0以上会初始化为0。以下的会初始化为垃圾值
堆空间
(malloc ralloc calloc分配的空间) 特点 先进先出。 2 用户管理
数据段 (bss:为初始化的全局变量 or:常量 静态数据区:static修饰静态变量 初始化的全局变 量。)(全局变量未定义的量初始化会为0)
代码段
栈空间的特点 1先进后出 2系统管理
extern int add(int a) 函数声明。不分配内存空间 可声明多次
函数定义 分配内存空间 定义多次会报错

上一篇:嵌入式linux学习笔记---TCP立即发出 以及 TCP的keep alive


下一篇:sizeof strlen 区别