码迷,mamicode.com
首页 > 编程语言 > 详细

003-scanf函数使用和表达式-C语言笔记

时间:2015-10-08 23:05:42      阅读:359      评论:0      收藏:0      [点我收藏+]

标签:

学习目标

1.【掌握】输入函数scanf的基本使用方法

2.【掌握】输入函数scanf运行原理和缓冲区理解

3.【掌握】算术运算符和算术表达式的使用

4.【了解】数据类型自动转换和强制转换

5.【掌握】赋值运算符和复合赋值运算符

6.【掌握】自增自减运算符的使用注意

7.【掌握】逗号表达式

一、输入函数scanf的基本使用方法

scanf函数的声明在标准输入输出头文件“stdio.h”中,这个函数用于接受键盘输入的内容。

语法:scanf("格式控制字符串",输入项地址列表);

格式控制字符串:规定数据输入的格式,由格式控制符和普通字符组成,格式控制符和百分号(%)一起使用,用来说明输入数据的数据类型(格式字符)。

输入项地址列表:需要接收数据的变量地址,这些输入项与格式控制字符串在类型和数量上要对应,当有多个输入项时,各个地址名之间以逗号“,”分隔。输入格式和变量类型要保持一致。

在C语言中,变量的地址可以通过地址运算符 & 得到

常见的scanf格式控制符

技术分享

 

二、输入函数scanf运行原理和缓冲区理解

使用scanf函数并不是直接将用户输入的数据赋值给变量,而且先将用户输入的数据全部存到缓冲区,注意任何字符都会存到缓冲区(包括回车),然后才给依次给变量赋值。如果缓冲区的数据不为空,调用scanf函数会直接从缓冲区中获取数据,而不会要求用户输入。

解决办法:

 

三、算术运算符和算术表达式的使用

技术分享

算术表达式就是算术运算符连接起来的式子,C语言里的表达式的结果不处理也不会报错,只是会警告提示表达式结果未被使用。

求余运算中,如果两个数中有负数,余数的正负取决于第一个数的正负

 

四、数据类型自动转换和强制转换

类型转换分为:隐式数据类型转换显式数据类型转换

隐式转换:

显式转换:

将大范围的数据赋值给小范围变量时,系统会自动做一个强制类型转换的操作,这样容易丢失精度。

 

五、赋值运算符和复合赋值运算符

赋值运算符:赋值运算符标记为“=”,这个不是等于哈,是将赋值运算符右边的表达式的值赋值给左边的变量。赋值运算符都是从右向左赋值。

复合赋值运算符:在赋值运算符 “=” 前加上其它二目运算符可构成复合赋值运算符。

 

六、自增自减运算符的使用注意

在程序设计中,经常遇到“i = i + 1”和“i = i - 1”这两种极为常用的操作。C语言为这种操作提供了两个更为简洁的运算符,即++和--,分别叫做自增运算符自减运算符。它们是单目运算符,是从右向左结合的算术运算符。

前缀表达式

先完成变量的自增自减1运算,再用x的值作为表达式的值即“先变后用”,也就是变量先进行自增自减运算,再将变量参与运算。

后缀表达式

先用x的当前值作为表达式的值,再进行自增自减1运算。即“先用后变”,也就是将变量参与运算,然后才对变量进行自增自减运算。

 

七、逗号表达式

在C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的值就是从左到右计算各个表达式,取最后一个表达式的值为逗号表达式的值。

如果你光看了这个实例,认为逗号表达式的值就是只看最后一个表达式,那就大错特错了。

1
2
3
4
5
6
7
8
#include <stdio.h>
 
intmain(intargc,constchar*argv[]){
    inti=1;
    intresult=(i++,i++,++i);//i++ i++了两次,i就变成了3,然后最后一个表达式是++i,所以表达式的值就是4
    printf("result = %d\n",result);//result = 4
    return0;
}

 

 
 

003-scanf函数使用和表达式-C语言笔记

标签:

原文地址:http://www.cnblogs.com/liehuntianshi/p/4862358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!