A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐荘 中级黑马   /  2016-7-27 18:42  /  1455 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



#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);
}

1 个回复

倒序浏览
谢谢您的干货
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马