lijifeng

导航

黑马程序员——C语言基础 scanf函数 基本运算 三目运算符

                                                       (一下内容是对黑马苹果入学视频的个人知识点总结)

(一)scanf函数

1>  简单介绍一下scanf函数   这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量

2>scanf函数用法

1)简单的用法

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     // 定义一个变量,用来保存用户输入的整数
 6     int number;
 7     
 8     // scanf函数只接受变量的地址
 9     // scanf函数是一个阻塞式的函数,等待用户输入
10     // 用户输入完毕后,就会将用户输入的值赋值给number变量
11     // 函数调用完毕
12     scanf("%d", &number);
13     
14     printf("用户输入的值是%d\n", number);
15     
16     return 0;
17 }

① scanf函数时,会等待用户的键盘输入,并不会往后执行代码。scanf的参数是"%d",说明要求用户以10进制的形式输入一个整数。这里要注意,scanf的第2个参数传递的不是变量,而是变量的地址,&是C语言中的一个地址运算符,可以用来获取变量的地址

② 输入完毕后,敲一下回车键,目的是告诉scanf函数我们已经输入完毕了,scanf函数会将输入的值赋值给变量

2)其他用法

一次性输入多个数值,并且以某些符号隔开例如一下一段程序

1 int num1, num2;
2 scanf("%d#%d", &num1, &num2);

但是需要注意不可以用换行  \n 隔开 ,另外输入的时候也要和中间隔开的符号隔开

(二)基本运算

1)算术运算

1> 加法运算+

     除开能做加法运算,还能表示正号:+5、+90

2>减法运算-

除开能做减法运算,还能表示符号:-10、-29

3> 乘法运算*

注意符号,不是x,而是*

4> 除法运算/

①  注意符号,不是÷,也不是\,而是/

②  整数除于整数,还是整数。1/2的值是0,这个并不是二分之一

5> 取余运算%

① 两个整数相除之后的余数

② %两侧只能是整数

③正负性取决于%左侧的数值

2)注意点

1>自动类型转换

   自动将大类型转换为了小类型,会丢失精度

2>自动类型提升

1 int b = 10.5 + 10;

将右边的10提升为了double类型

3> 强制类型转换

4> 运算顺序

 有不同的优先级 不同的结合性 

 1 #include <stdio.h>
 2 int main()
 3 {
 4     /*1.算数运算符的基本使用
 5     int a = 10 + 1 + 2 - 3 + 5;
 6     
 7     int b = -10;
 8     
 9     int c = 10 * b;
10     
11     int d = 10 / 2;
12     
13     // 取余运算(模运算)
14     // %两边都是整数
15     // %取余结果的正负性只跟%左边的数值有关
16     int e = 10 % -3;
17     printf("%d\n", e);
18     */
19     
20     /*
21     // 自动类型转换(double->int)
22     int a = 10.8;
23     
24     // 强制类型转换(double->int)
25     int b = (int) 10.5;
26     printf("%d\n", a);
27      */
28     
29     // 自动类型提升(int->double)
30     double c = 10.6 + 6;
31 
32     double d = 1 / 3;
33     
34     double e = (double)3/2;
35     
36     printf("e的值是%f\n", e);
37     
38     
39     return 0;
40 }

(三)赋值运算

 赋值运算比较简单 分为简单赋值与复合赋值

(四)自增自减

  ++自增运算符 ——自减运算符 注意一下++a和a++的区别(前面加完后运算后面的运算完再加)

(四)sizeof

1> 用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

2>sizeof的基本形式

①sizeof( 变量\常量 )

②sizeof(数据类型)

#include <stdio.h>

int main()
{
    int a = 10;
    int size = sizeof(char);
    
    printf("size=%d\n", size);
    
    return 0;
}

(五)关系运算

  其实就是判断真假 如果是真这为1否则为0.关系运算符有很多他们的优先级是不同的,关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者。

(六)逻辑运算

1)逻辑与

运算结果

只有当条件A和条件B都成立时,结果才为1,也就是“真”;其余情况的结果都为0,也就是“假”。因此,条件A或条件B只要有一个不成立,结果都为0,也就是“假”

3> 运算过程

总是先判断条件A是否成立,如果条件A成立,接着再判断条件B是否成立:如果条件B成立,“条件A && 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”,如果条件A不成立,就不会再去判断条件B是否成立:因为条件A已经不成立了,不管条件B如何,“条件A && 条件B”的结果肯定是0,也就是“假”

2)逻辑或

1>使用格式  

    “条件A || 条件B”

2> 运算结果

     当条件A或条件B只要有一个成立时(也包括条件A和条件B都成立),结果就为1,也就是“真”;只有当条件A和条件B都不成立时,结果才为0,也就是“假”。

3> 运算过程

总是先判断条件A是否成立,如果条件A成立,就不会再去判断条件B是否成立:因为条件A已经成立了,不管条件B如何,“条件A || 条件B”的结果肯定是1,也就是“真”.如果条件A不成立,接着再判断条件B是否成立:如果条件B成立,“条件A || 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”

3)逻辑非 

(七)三目运算符

三目运算符  条件 ? 数值1 : 数值2

1 int a = !100 ? 9 : 89;

 

 

posted on 2015-03-23 18:18  lijifeng  阅读(425)  评论(0编辑  收藏  举报