------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1. #include指令
1)<>:表示包含的是系统的文件
2)#include“ ”:表示包含的是一个用户定义的文件,可以是头文件,也可以是普通文件
3)#include 是一个预处理指令,不是一条语句,所以后面不需要使用分号
4)#include文件包含的实质:把要包含的文件的内容替换掉当前书写的include语句
5)#include不一定要放在程序开头
2. include指令的文件搜索顺序
1) include “ ”包含自定义文件
搜索顺序:-->当前目录--->编译器include目录--->找系统目录--->报错
① 前目录:和main.c文件同一个文件夹(包含子目录)下
② 编译器include目录:xcode显示包内容/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/Macosx10.10.sdk/usr/include
如果修改了编译器的include中的自定义文件后,运行后不会发生改变,原因是没清除缓存------->解决方法:
A. product的clean
B. 家目录/Library/Developer/Xcode/DerivedData/
③系统的include目录:/usr/include…../usr/local/include
3. C语言模块化编程(多文件开发):
就是多文件(.c文件)编程,一个.C文件和一个.h文件可以被称为一个模块
1) .c c语言的源文件
2) .h (header)头文件
① 方法的声明,但是不能实现方法
② 声明变量
③ 声明结构体
好处:
1) 用的时候,只需要包含.h文件,对外隐藏源文件的实现
2) 团队的分工和协作
3) 可以把功能细化分若干个模块
4. 多文件开发的实现和注意事项
1) 新建.h文件开头语句为条件编译,防止重复包含
2) 头文件多次包含只有一次有效
5. 进制
1) 数位:代表从右数的位数,从零开始数
2) 基数:几进制基数就是几
3) 位权:代表该位的值要乘以多少,比如二进制0b101,三个数位的权值从左到右分别为10^2,10^1,10^0;
4) 数码:代表该位的值
6. 机器数和真值
1) 机器数指二进制序列,机器数是带符号的,最高位为1表示负数,为0表示正数
2) 真值是指机器数代表的十进制数
7. 原码、反码、补码
数据在计算机内部是以补码的形式存储的
1) 原码:符号位加上真值的绝对值,一个字节表示的范围-127~127
2) 反码:正数的反码就是原码,负数的原码的符号位不变,其余各位取反
3) 补码:正数的补码就是原码,负数的补码是原码的符号位不变,其余位取反加1,一个字节表示的范围为-128~127
8. 位运算符
1) &:按位与
2) |:按位或
3) ~:按位取反
4) ^:按位异或,相同为0,不同为1
5) >>:右移位,左边补符号位,右移几位就除以2的几次方
6) <<:左移位,右边补0,左移几位就乘以2的几次方,可能会改变符号
7) 应用:通过&来获取某个数的每一位的值,或者把某一位设置为0或1
8) 通过移位及和1进行&来获取每一位的值,以便进行进制转换
10进制转换为二进制
void tenTo2(int n){
//获取该数n的长度
int len = sizeof(n)*8;
for(int i=len-1;i>=0;i--){
//进行移位操作
int temp = n;
temp = temp >> 1;
//和1进行按位与操作
int result = temp & 1;
printf("%d",result);
}
printf("\n");
}
9. 交换两个变量的值
1) 通过&1来判断数的奇偶性
//判断一个数的奇偶性
void jiOu(int n){
if(n&1){
printf("奇数\n");
}else{
printf("偶数\n");
}
}
2) 交换两个变量的值
① //使用第三个变量
void huHuan1(int x,int y){
int temp;
temp = x;
x = y;
y = temp;
printf("x = %d,y = %d\n",x,y);
}
② //通过异或操作
void huHuan2(int x,int y){
x = x^y;
y = x^y;
x = x^y;
printf("x = %d,y = %d\n",x,y);
}
10. 变量地址获取和存储
1) 通过&变量来获取变量的地址:&P--->获取P的首地址
2) 先定义的变量存储在高地址,后定义的变量存储在低地址,连续定义变量不一定连续存储
3) 内存中高位字节存储在高地址,低位字节存储在低地址
11. 获取变量在内存中的每一个字节的值
使用指针存储变量的地址,通过指针+1操作获取每个字节的值
char *p = #