第一周学习的内容大多都是理论知识,收获不少,因为相对于其他教学都是直接教应用和代码程序。因此收获不少,在此总结自己学到的知识:
P1:
一,c语言结构:
include <stdio.h>
include 是导入一个文件
stdio.h 是一个标准库 i(input),o(output)是标准输入输出库 .h是头文件
< >表示导入系统文件 " "表示导入自定义文件
int main (){ }
int 是数据类型 整型 main程序的主函数 程序有且只有一个主函数
()里面表示函数的参数 里面可写void表示空
{ }:表示函数体 代码体 程序体
函数:如printf(“xxxx”,\n):
是stdio.h中系统提供的函数 表示在标准输出设备上打印字符串
\n是转义字符 表示换行
return 0
如果出现在其他函数中表示函数结束
二,编译和执行过程:
编译过程:
程序执行过程:
常见代码问题:
1,编辑时异常
2,编译时异常
3,运行时异常
三,汇编语言:
汇编语言:
mov 移动 add添加
push 压栈 pop 出栈 call 调用
简单计算:
__asm
{
mov a,10
mov b,20
mov eax,a
add eax,b
mov c,eax
}
//c=a+b=30
P2
一;变量和常量
数据类型的作用:编译器预算对象(变量)分配的内存空间大小
常量:在程序运行过程中 其值不能发生改变的量
将变量定义常量:
用const(c语言中不安全) 和 #define
格式:数据类型 常量名 = 值
标识符的要求:
1,不能使用系统关键字(结构体中会出问题)
2,允许使用字母,数字,下划线。如 int a_123 // int _a123
3,不允许数字开头
4,区分大小写
5,见名知义
二,整型,字符型和浮点型
忽略警告:
#define _CRT_SECURE_NO_WARNINGS (放在第一行)
#program warning(disable:4996) (放在任意位置)
sizeof(数据类型):计算数据在内存中占的字节(BYTE)大小
无头文件,不是函数,返回值为size_t
计算操作:
unsigned int len = sizeof(数据类型/变量名)
printf(“%d”,sizeof(x))
整形:4字节 = 32bit
短整型:2字节
长整型:4 字节
长长整型:8字节
长整型在Linux 64位中为8字节
short<=int<=long<long long
有符号 数的最高位为符号位,0为正数,1为负数
无符号 数最高位不是符号位,而就是数的一部分,无符号数不可能是负数
字符型:
char:1字节
ASCII码:大小写相差32 A=65 a=97 0=48
转义字符:
\a警报 \b退格,将当前位置移到前一列
\f换页,将当前位置移到下一页开头
\n换行 \r回车,将当前位置移到本行开头
\t水平制表(8空格 对齐) \v垂直指标
浮点型:
float单精度 double双精度
sezeof(float)=4 sezeof(double)=8
浮点型存储格式:符号位 指数位 小数位
占位符%p:输出一个变量的内存地址编号(无符号十六进制整型数据)
三,进制
二进制0-1
八进制0-7
十六进制0-9 10-15(a-f A-F)
printf("%x\n",a);//%x 输出一个16进制的数
printf("%X\n",a);
printf("%o\n",a);//%o 输出一个2进制的数字
定义八进制数据 :以0开头
int c=0123;
定义十六进制数据:以0x开头
int d=0x123;
计算机编译不可以直接编译二进制
四,数据存储:
计算机系统中,数据用补码存储
char ch=10
原码:0000 1010
反码(正数相同,负数中除了符号位,其他与原码相反):0000 1010
补码(正数相同,负数中 是反码加1 ):0000 1010
则ch=-10
0000 1010
1111 0101
1111 0110
补码作用:
统一了零的编码——0在计算机存储形式是0000 0000 而不存在-0:1000 0000
符号位和其他位统一处理
减法运算转换为加法运算
两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃
补码运算:
76-32=76+(-32):
76的补码: 0100 1100
-32的补码:1110 0000
求和补码 :1 0010 1100
即是44
总结如上。
继续努力!!!