#pragma mark 0_17 变量的命名规则以及规范 [掌握]
1."关键字":就是系统定义的词
"标识符":就是程序员定义
2.标识符:是有命名规则和规范
规则:必须遵守的
1>标识符只能 数字 字母 下划线 和 $ 而且不能以数字开头
2>变量的区分大小写的 int age; int Age;
3>不能和关键字重名 int float = 10;
4>变量一定要在声明后使用
5>同一个大括号中不能定义相同名字的变量
规范:建议遵守 如果大家都遵守 你也必须遵守
3.
1>标识符必须有意义 int age; int score;
2>驼峰式命名法 int xiaoMingScore
如果一个名字由多个单词组成 那么 除了第一个单词 其他单词的首字母大写
4.成为一个大牛
1>写代码一定要加注释
2>变量命名一个要符合规则和规范
3>代码整齐
#pragma mark 0_18 printf函数的使用补充 [掌握]
比较常用的一些占位符
1.%0md:就业班用的很多
输出的结果 m位 如果不够 那么在前面补0
int num = 10;
printf("%05d",num);---->00010
2.%.nf 或者 %.nlf
保留小数点后面n位小数
#pragma mark - 01 数据类型转换 [掌握]
1.数据类型转换分为两种:显示转换(强制转换) 隐式转换(自动转换)
2.当 赋值符号"=" 左右两边的数据类型不一样的时候 系统会进行自动的转换
怎么转换:会把右边的值得类型 转成左边的类型
"注意:不能转的 别乱来
举例:
float f1 = 1.2345;//系统做了一步自动的转换 浪费性能
1> 如果 是 把一个double类型的数值 赋值给我 float 类型的变量
那么精度会降低(可能到导致问题,数据丢失)
举例:
double d1 = 3.1415f;//系统做了一步自动的转换 浪费性能
1>如果 是把 一个float类型的数值 赋值给 double 类型的变量
那么精度会提高(如果没有必要 那么就会造成空间浪费)
举例:
int num = 3.94;//系统做了一步自动的转换 浪费性能
因为把小数赋值给整型变量的时候,会直接忽略小数点,导致数据不对
总结:虽然说 "="符号 会把右边的数值 转成左边的类型 但是自己明确 右边的数值到底能不能转成左边的类型
3.char 的隐式转换
举例:
char ch1 = 66; 用%c打印ch1的结果是 字母B
其实 字符 在内存中是以ascii码存在的 但是不需要去背
A的ASCII码是65 a的ASCII码是97
字符 本质上在内存中就是一个数字,是一个整数
#pragma mark - 02 scanf函数的简单使用 [掌握]
1.scanf函数到底是干啥用:获取用户的输入
举例子:要求用户输入他的QQ号码 和 密码 告诉用户登录成功
printf("请您输入您的QQ号码:\n");
//用scanf获取用户的输入,
//定义一个变量,用来存储用户输入的QQ号码
int qq = 0;//默认不知道 所以我们给他一个0
scanf("%d",&qq);//%d也是占位符 给要输入值的变量占位的
//& 英文名字叫做 and 中文名 叫取地址符
//遇到scanf的时候 程序会等待用户的输入
printf("您的输入的qq号码是%d\n",qq);
printf("请输入您的QQ密码:\n");
//再来一个变量 存储QQ密码
int pwd = 0;
scanf("%d",&pwd);
printf("您输入的QQ密码是:%d\n",pwd);
2. & 叫做取地址符 作用就是取出跟在他后面的变量的地址
#pragma mark -03 scanf函数接收各个类型的数据[掌握]
1.int 类型变量接收数据的时候
scanf("%d",&变量名);
2.float 类型变量接收数据的时候
scanf("%f",&变量名);
3.double 类型变量接收数据的时候
scanf("%lf",&变量名);
4.char 类型变量接收数据的时候
scanf("%c",&变量名);
集体注释的快捷键: command + /
#pragma mark -04 scanf练习[掌握]
此知识点复习时参照第3天视频笔记/04 scanf练习.pdf
"回家一定要敲一遍
#pragma mark - 05 使用scanf函数需要注意的细节 [掌握]
1.变量名字:不要在用abcde
2. int age = 0;
scanf("%d",&age);//%d后面不能加'\n',而且变量名前面一定要有 '&'
3. scanf中的占位符 一定要和 变量的类型保持一致
4.scanf中的占位符 是什么类型的 输入的时候也要是什么类型的
在控制台中 无法限制用户的输入
#pragma mark - 06 使用scanf函数一次接收输入多个数据 [掌握]
1.scanf中如果有多个占位符 那么第一种方式是 占位符之间什么都不写
那么要求用户输入的时候 以空格或者回车或者tab键作为间隔
2.scanf中如果有多个占位符 那么第二种方式是 占位符之间可以写自定义的间隔符 但是要求用户输入的时候 以相应的间隔符相隔
#pragma mark - 07 scanf函数的缓冲区 [听懂]
#warning 此知识点听不懂就算了 反正开发ios是用不到的
1.scanf 并不是键盘上拿数据的 而是从他的缓冲区拿数据的
2.如果缓冲区有他想要的数据 直接拿数据走人
3.如果没有呢?等待用户输入
4.scanf中缓冲区拿数据的时候 如果是给小数或者整数赋值,会忽略回车,空格,tab
例子:
int num1 = 1;
char num_c = 'a';
printf("请输入一个数字:\n");
scanf("%d",&num1);//90 回车
//在第二个scanf之前 只要我把缓冲区清空
rewind(stdin);//清空缓冲区中的所有玩意
printf("请输入一个字母:\n");
scanf("%c",&num_c);//
printf("%d---%c----\n",num1,num_c);
输出入的结果是: "100 ---- 换行 -----
解决方案:
在第二个scanf之前把缓冲区清空
只要在 第162行 调用一个API(API就是接口的意思) rewind(stdin);
#pragma mark -08 交换两个变量的值 [掌握]
1.借助第三个变量
int num1 = 10;
int num2 = 20;
//int temp = num1;
int temp = 0
temp = num1;
num1 = num2;
num2 = temp;
2.不借助第三个变量
int num1 = 10;
int num2 = 20;
num1 = num1 + num2;// 30 20
num2 = num1 - num2;// 30 10
num1 = num1 - num2;// 20 10
#pragma mark -09 算术运算符和算术表达式简要介绍 [掌握]
#pragma mark -10 算术表达式 [掌握]
1.算术运算符:
加+ 减- 乘* 除/ 求余%(模)
10%3: 10除以3的余数是多少 1
100%7: 100除以7的余数是多少 2
求余只能是整数
"别去研究
10%-3 求余的结果的正负 和被除数的正负相同
2.算术表达式:由 算术运算符 连接起来的式子就叫算术表达式
3.其他的隐式转换
算术运算符的两边
如果类型不一样 那么会先转成一样的
怎么转? 1>转的方向 int --> float --> double
2>只要有小数 都往double方向转
#pragma mark -11 案例讲解 [掌握]
做题的时候 最好是先写思路
#pragma mark -12 算术运算符的优先级和char数据参与算术运算 [掌握]
1.+-*/%
优先级是:先算 */% 后算+-
如果优先级一样 那么从左到右运算
9 + 10/3*5 + 2 ; (26)
1 + 2- 5%4 + 3/1; (5)
2.char类型的变量 也可以参加运算
本质是 char这个变量的ASCII码参与运算
'A'的ASCII码 65
'a'的ASCII码 97
#pragma mark -13 复合赋值运算符 [掌握]
1.什么是符合运算符
int num = 10;
// num = num + 2;
2.符合运算符怎么用
num = num + 2;等价于 num+=2;
3.常见的复合赋值运算
int num = 10;
+= 比如: num += 10; --->等价于 num = num + 10;
-= 比如: num -= 10; --->等价于 num = num - 10;
/= 比如: num /= 10; --->等价于 num = num / 10;
%= 比如: num %= 10; --->等价于 num = num % 10;
4.练习
int main()
{
int num = 111;
num %= 2;//num = num%2---> num = 1
printf("%d\n",num);
}
|
|