Week1
1.不能使用关键字作为变量名
2.进制转换
3.使用后缀为sln的文件,可以打开项目
4.00 00 00 7b x86架构是小端存储(英特尔还是AMD),低位在前,高位在后
内存数据要用十六进制去看,非常高效,两个字符就可以表示一个字节
1 位 1 bit 存储0或者1
1 字节 1 byte =8 bit
1KB = 1024 字节
1MB =1024 KB
1GB= 1024 MB
5.数据变量类型
Week2
1.ASCLL码与十进制的转化 %c
无论是赋ASCLL码值还是赋字符,使用%c打印输出的都是字符
2.字符串常量的存储空间需要比他的字符个数多一个
3.混合运算
Int i=5;
Float j=i/2; j=2.0
Float k=(float i)/2; k=2.5
4.数据输入输出函数
Scanf 读取的是标准输入 不能运行时加入宏定义 #define _CRT_SECURE_NO_WARNINGS
Printf 输出到黑色控制台标准输出
%d 一个十进制整数
%f 一个浮点数
%c 一个单一的字符
5.scanf使用方法
#include <stdio.h>
int scanf( const char *format, ... );
format 是一个字符串,…是可变参数,参数的数目与format中的%的数目保持一致
Scanf 在读取 整数型,浮点数,字符串时,会忽略 '\n'空格等字符。
但是在读取匹配字符时,scanf("%c",&c) 不会忽略任何字符
缓冲区为空时,黑色窗口才会卡住停下,所以在%c时,黑色窗口会闪过。
6.scanf循环读取,发生错误时返回EOF(-1)
scanf出错的情况:在前面不输入任何字符的时候,反复按 CTRL+Z,会出错停止
疯狂打印:scanf缓冲区,字符不匹配
7.清空缓冲区: fflush(stdin)
while (rewind(stdin),(ret=scanf("%d", &i))!=EOF)
字符匹配时,不需要清空缓冲区
8.当我们让scanf函数一次读取多种类型的数据时,对于字符型数据要格外小心,因为当一行数据中存在字符型数据读取时,读取的字符并不会忽略空格和'\n'(回车符),所以使用方法如图2.9.8所示。
int i = 5; double f; float l; char c; int ret;
ret = scanf("%d %c%lf%f",&i,&c,&f,&l);
//混合输入时%d和 %c之间要加一个空格,才能正确输出
printf("i=%d,c=%c,f=%5.2lf,l=%5.2f,ret=%d\n", i, c, f, l, ret);
//%5.2lf 是对输出数字形式的确定
system("pause");
return 0;
编写代码时,我们需要在%d 与%c之间加入一个空格。 scanf 函数匹配成功了4个成员,所以返回值为4,我们可以通过返回值来判断scanf函数匹配成功了几个成员,中间任何有一个成员匹配出错,后面的成员都会匹配出错。
9.printf输出格式
%5.2 有5位数字,小数点后显示两位
10.运算符优先级
先乘除,取模,后加减
2<a<10 变成布尔运算
2<a&&a<10加了逻辑运算符,是正确的判断方式
11.判断两个浮点数是否相等
F=234.56
关系运算符:f==234.56 ×
布尔运算符:f-234.56>-0.0001&&f-234.56<0.0001 √
关系运算符认为一切非0数值都为真
12.赋值运算符只能在左边放变量
13.自增自减运算符
J=i++>-1可以分解为两步 j=i>-1;布尔关系式,正确为true=1,不正确为flase=0;
i++
14.整形数在0-128之间可以通过%c输出