数据类型 scanf函数

IOS学习第3天

数据类型的转换

注意点:为变量赋值的时候,赋值的数据的类型必须要和变量的类型一致,否则就会出现问题

  • 数据的自动类型转换

当我们为变量赋值的时候,如富赋值的数据的类型和变量的类型不一致.这个时候C系统会将赋值的数据类型转换为变量的类型,然后再赋值,这样的情况叫做自动类型转换.

数据类型转换01

数据转换类型02

数据转换类型03

  • ASCII码值

    ‘A’:65

    ‘a’:97

    ‘0’:48

    当为char变量赋值的时候,可以直接赋值ASCII码

    当我们为char变量赋值1个整数的时候,气势赋值的是以这个整数位ASCII码所对应的字符数据

数据类型转换04

scanf函数

  • 作用:可以在程序运行的时候,让用户自己输入数据,然后将用户输入的数据赋值给指定的变量

  • 格式:scanf(“格式控制符”,变量地址);

    例子:
    int num,num1;
    scanf("%d-%d",&num,&num1);
    不能添加\n换行符

    输入数据的时候要按照其规定的格式

  • scanf函数原理

当CPU执行到scanf这个函数的时候,CPU执行就会暂停,不会继续执行下去了,并等待用户输入数据,当用户输入完毕数据,按下回车表示输入完毕,这个时候,就会将用户输入的数据复制给后面指定的变量

  • scanf函数的缓冲区

在执行scanf函数的时候,会让用户输入一个数据,数据输入完毕之后,并不是将这个数据直接赋值给变量,二十先将数据存储在缓冲区,输入的任何数据都会存储在缓冲区中,当需要给某个变量赋值的时候,会先去缓冲区里查找有没有数据,如果没有才会在控制台要求用户输入数据

scanf函数01

缓冲区总结

1.当从缓冲区中拿数据的时候,如果要拿的数据的类型是整形或实型,遇到空格、回车、Tab键就会被自动忽略,继续往下拿

2.当从缓冲区拿数据的时候,如果要拿的数据的类型是字符型,不会忽略任何数据

scanf函数02

解决方法

rewind(stdin);这句话的作用是将缓冲区的数据全部清空

  • 交换两个变量的值

方法一:再声明一个临时变量

int num1,num2,temp;
num1 = 10, num2 = 15,temp = 0;
temp = num1;
num1 = num2;
num2 = temp;

方法二:利用算术运算

 int num1,num2;
 num 1 = 10,num 2 = 15;
 num 1 = num1 + num2;
 num 2 = num1 - num2;
 num 1 = num1 - num2;

方法三:利用异或运算

表达式结果
X^X0
X^0X
X^Y^ZX^(Y^Z)
X^YY^X
int num,num2;
num 1 = 10;num 2 = 15;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;

算术表达式

一般情况下,我们要求要处理表达式的结果.处理方式为:将表达式的结果通过赋值符号存在一个变量中

算术运算符作用
+加号
-减号
*乘号
/除号
%取余
=赋值

注意点

1.如果参与算术表达式的操作数的类型都是一致的,那么算术表达式的及结果的类型就是这个类型

2.如果将double类型的数据赋值给float类型的变量,会丢失精度

3.当算术表达式中的运算数据不同时,运算的结果会是精度更高的那种类型

算术运算符的优先级和char数据参与算术运算

  • 原理

先乘除模,再加减,如果同级别,就从左到右依次计算.使用小括号可以改变运算的优先级.如果有小括号,就先算小括号里的.

  • char数据参与算术运算符

char类型的数据也可以参与算术运算

当算术表达式中的操作数是一个char数据的时候,会先将这个char数据转换为相对应的ASCII码值,然后再进行运算.

算术表达式01

  • 赋值运算
表达式含义
num += anum = num + a
num -= anum = num - a
num *= anum = num * a
num /= anum = num / a
num %= anum = num % a

变量的命名规则以及规范

  • 变量的名称是由程序自己定的,不能随便定义,一定要有意义并且符合一些规则和规范
  • 变量名只能由任意的字母,下划线和$以及数字组成,注意不能用数字开头
  • 是区分大小写的 age Age AGE
  • 变量一定要先定义再使用
  • 同一个大括号中不能定义名字相同的变量
  • 不能喝C的关键字同名
  • 命名要有意义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值