黑马程序员——数据类型、printf函数与scanf函数
来源:互联网 发布:js dragobject 编辑:程序博客网 时间:2024/06/05 06:23
------ Java培训、Android培训、iOS培训、.Net培训期待与您交流! ------
http://www.itheima.com
一、C语言数据类型;
1分类:基本类型、构造类型、指针类型、空类型。
1.1基本数据类型又分为:整型(短整型、整型、长整型)、实型(单精度型、双精度型)、字符型、枚举型。
1.2构造类型又分为:数组类型、结构体类型、共用体类型。
2.数据类型决定了数据在内存中占用的字节数以及取值范围。
二、常量与变量
1.常量:值不能被改变的量(常数)。
1.1.分类:整型常量(2,-2)、实型常量(2.2,-2.31)、字符常量(‘a’)、字符串常量“abc”、符号常量。
1.1.1符号常量:用标识符代表的常量,一般用大写字母表示,例如在宏定义时的应用。#define PI 3.14 其中PI就是一个符号常量。
2.标识符:所谓标识符就是在程序中定义的一些名称,例如变量名、函数名、数组名、符号常量名、文件名等。
2.1分类:关键字、预定义标识符、用户标识符。
2.2命名规则:由字母、数字、下划线、美元符号$组成;首字母不能是数字;不能与关键字同名;严格区分大小写。
2.3规范内容:起一个有意义的名称,见名知义;如果一个标示符有多个单词组成,第一单词的首字母小写,其他单词的首字母都大写,或者所有的单词的首字母都大写。
3.变量:值可以改变的量。
注意点:
- 严格遵守标识符的命名规范,变量名不能同名;
- 变量名和变量值的区别:我们定义变量时会在内存中开辟一个空间,变量名实为该空间一个符号地址,变量值存储在该空间内;
- 变量定义以后,是有值的,为了防止变量的原来的值对我们的程序产生影响,我们要初始化也就是给变量赋初值;
- 变量使用:等号的左侧必须是一个变量,一定不能写一个常量,等号的右侧可以是变量、常量、表达式;
- 作用域:变量作用域可以理解为变量可以使用的范围,变量按照作用域分为局部变量和全局变量;在函数的内部或者代码块的内部定义的变量,称为局部变量,其作用域从局部变量定义的位置开始,到它所在的代码块或者函数体的“}”为止,在代码块的内部可以定义和块外部同名的变量,此时块内部的变量会暂时屏蔽块外部的变量的作用域;在函数的外部定义的变量是全局变量,从定义的位置开始,到文件末尾,在不同的函数中都可以使用。
三、printf函数:标准的库函数,使用时要包含头文件:#include <stdio.h>
格式控制符:
- %d 输出十进制的整
- %f 输出实型的数
- %c 输出字符
- %s 输出字符串
- %o 以八进制的形式输出
- %x 以十六进制的形式输出
- %p 输出地址
域宽问题(md%):
- m 可为正,也可为负。
- 如果要输出的数的位数 > 域宽m ,则按照数据的实际位数输出。
- 如果要输出的数的位数 < 域宽m 要补空格:m > 0 从左侧开始补空格,m < 0 从右侧开始补空格。
- %0md表示 不足部分补0,例如有输出01、02、03等格式要求时使用。
- float类型的变量,%f打印出来的精度:有效数字是7位,默认小数点后6位,如果小数部分不足6位,补零。
- double类型的变量,%f打印出来的精度:有效数字是15位,默认小数点后6位,如果小数部分不足6位,补零。
- %m.nf,m表示总的列数(包括小数点所占的列),n表示小数点后的位数,通常我么会以%.nf的形式来控制输出小数的位数。
四、scanf函数:标准的库函数,使用时要包含头文件:#include <stdio.h>
注意点:
- 格式控制符不允许写%m.nf,但是可以写成%mf,一般我们直接使用%f的控制格式进行输入。
- 以%d的格式输入时,在输入值之前,如果输入了空格、回车、 tab都会被忽略。
- scanf运行的原理:用户输入的内容会被存放到scanf的输入缓冲区中,然后scanf函数会根据格式控制符的要求,从输入缓冲区依次选取,如果取得的内容和我们的格式要求一致,则把值存放到变量中,如果格式不一致,则不修改变量的值。另外如果scanf缓冲区中有内容,则scanf不会提示我们再次输入。
int a =-1,b=-1;
char ch='a';
scanf("%d",&a);
scanf("%c",&ch);
scanf("%d",&b);
printf("%d,%c,%d",a,ch,b);
对于此段代码如果我们输入:13 回车 a 回车12,输出结果将会是13, ,-1 原因就是scanf从输入缓冲区依次读取到的是13 \n a 再结合scanf运行的原理自然会得到13, ,-1的输出结果。 针对这个问题我们可以在char ch='a';后面加上 scanf("%c",&ch);来吸收13后面的\n,从而打印出我们期望的结果:13,a,12
- 如果整型和字符型混合输入的时候,建议使用加上逗号的形式,例如scanf("%d,%c,%d",&a,&ch,&b); 。
- 黑马程序员——数据类型、printf函数与scanf函数
- 黑马程序员——变量、printf函数、scanf函数
- 黑马程序员—输出函数printf和出入函数scanf
- 黑马程序员——C语言基础知识整理——printf函数与scanf函数
- 05.黑马程序员-scanf函数、printf函数
- ——黑马程序员——C语言基础--printf函数和scanf函数
- 黑马程序员———C语言 printf函数和scanf函数
- 黑马程序员——c语言学习---printf和scanf函数
- 黑马程序员——C语言基础语法(关键字、标识符、注释符、变量、作用域、printf函数、Scanf函数)
- 黑马程序员-scanf函数
- 黑马程序员 ——ios基础 ——程序和数据储存、数据类型、printf函数
- [黑马程序员]01 [c语言][重要的知识点]printf函数和scanf函数的数据输出与读取问题
- C——printf和scanf函数
- Printf函数与Scanf函数学习
- 黑马程序员——c语言基础:scanf函数
- 黑马程序员——C语言中的scanf函数
- 黑马程序员_C语言基础_关键字、printf函数、scanf函数
- 黑马程序员—C语言—基本语法printf与scanf
- Unity3D研究院之Android NDK编译C/C++结合Unity实现本地数据共享(二十八)
- Linux Is Not Matrix——repo浅解
- Java匿名内部类
- 加载图片的三种方式使用
- 一次诡异的日志死锁
- 黑马程序员——数据类型、printf函数与scanf函数
- James邮箱服务器账户资料迁移问题
- Linux串口驱动(8250)的编写与调试
- ExcelToLua工具
- 12月风怒(2)
- Java中使用PrepateStatement并且like模糊查询
- Spring MVC的基本概念
- 解决新建maven工程出现Could not resolve archetype
- 数据库(SQL)之trigger(触发器)的使用以及视图(view)的基本实现