标签:
数据类型是指数据在内存中存储的方式。
C语言中有5大数据类型:基本类型、构造类型、指针类型、空类型、定义类型。
C语言中常见的数据类型:
各种数据类型在内存中占用的空间大小:(单位:字节)(1 Byte = 8 bit)
|
16位编译器 |
32位编译器 |
64位编译器 |
char |
1 |
1 |
1 |
Int |
2 |
4 |
4 |
Float |
4 |
4 |
4 |
Double |
8 |
8 |
8 |
Short |
2 |
2 |
2 |
Long |
4 |
4 |
8 |
Long long |
8 |
8 |
8 |
Void *(指针变量) |
2 |
4 |
8 |
各种数据的表示范围:
常量就是在内存中固定的数据,不可改变其内容。
常见分类:
a) 十进制常量,和自然界十进制表示法一致
b) 二进制常量,以0b(0B)开头,例如:0b1100
c) 八进制常量,以0开头,例如:045
d) 十六进制常量,以0x开头,例如:0x123
a) 单精度常量,小数后面加f表示单精度常量。 例如:3.14f
b) 双精度常量,和自然界小数表示方法一致。 例如:3.1415926 3.8e5(或3.8E5 相当于3.8 x 105)
用单引号括起来的单个字符表示。
a) 普通字符:例如: ‘A’ ‘b’ ‘$’等等
b) 转义字符:例如:’\n’ ‘\t’ ‘%%’ 等等
用双引号括起来的一系列字符串。 例如:”Hello World!\n” “”表示一个空字符串
也叫宏常量。 例如: #define PI 3.1415926
所谓变量,即代表内存中某个空间的值是可变的。
1. 变量的定义:变量类型 变量名
2. 变量的初始化
a) 定义时初始化: int a = 10;
定义时全部初始化: int a = 10, b=11;
定义时部分初始化: int a =2, b;
b) 先定义后初始化:int b; b = 10;
c) 用其他变量初始化: int a=10, b; b = a;
d) 连续初始化:double pi, pai; pi = pai = 3.14;
3. 变量的使用
取值和存值!
4. 变量的作用域
按照作用域不同可以分为局部变量和全局变量:
局部变量:也称为内部变量,定义在函数内部或者代码块内部,其作用范围从变量定义开始到函数结束或者代码块结束。在内部可以定义和外部同名的变量,在内部这些变量会屏蔽外部的同名变量。
全局变量:也称为外部变量,定义在函数外部,其作用范围是从定义开始,到文件结尾。(同一文件中,从该变量定义以后的任何位置都可以使用该变量。)
不同类型数据在内存中存储的空间大小和存储方式是不尽相同的,为了有效的使用内存空间和有效率的存取,变量也需分为不同的类型。
 
printf是一个标准输出函数,包含在标准输入输出头文件stdio中,能够以精确的格式输出结果。
printf函数的调用格式: printf(“格式控制字符串”,输出项目列表); 例如:prinf(“name = %s, age = %d”, name, age);
格式控制字符串:
是由格式字符(转换说明符、标志、域宽、精度)和普通字符组成。
输出项列表:
可以是常量、变量或者表达式,也可以没有输出项(例如只输出一系列字符串),输出项必须与格式控制符在类型和数量上一致,否则结果不可预测。当有多个项目输出时,各输出项之间以逗号隔开。
printf的格式控制的完整格式:?
% - 0 m.n l或h 格式字符?
下面对组成格式说明的各项加以说明:?
1 %:表示格式说明的起始符号,不可缺少。
2 -:有-表示左对齐输出(右侧补空格),如省略表示右对齐输出(左侧补空格)。
3 0:有0表示指定空位填0,如省略表示指定空位不填。
4 m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型 数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。
5 l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
格式字符
格式字符用以指定输出项的数据类型和输出格式。
1 d格式:用来输出十进制整数。有以下几种用法: %ld:输出长整型数据。
2 o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。?
3 x 格式:以无符号十六进制形式输出整数。对长整型可以用”%lx”格式输出。同样可以指定字段宽度用”%mx”格式输出。
4 u 格式:以无符号十进制形式输出整数。对长整型可以用”%lu”格式输出。同样也可以指定字段宽度用”%mu”格式输出。
5 c 格式:输出一个字符;
6 s 格式:用来输出一个字符串
7 f 格式:用来输出实型数据。对double型可以用”%lf”格式输出。对单精度,前7位为有效数字,默认输出6位小数;对双精度前15位为有效数字,默认输出6位小数。
8 g 格式:自动选择f格式或者e格式中的较短的一种输出,且不输出无意义的0.
9 p 格式:输出内存地址
10 e 格式:以指数形式输出实数。
printf函数的补充:
 
scanf函数原型包含在标准输入输出头文件stdio.h中,用于接受键盘输入的内容。Scanf函数是一个阻塞式函数。
格式: sancf(“格式控制字符串”, 输入地址列表); 例如: sancf(“%s,%d”, &name, &age);
注意点:
scanf函数的运行原理:
scanf函数被调用后会创建一个缓冲区,当用户在键盘上输入内容的时候,缓冲区会依次记下这些数据,并根据格式控制符,按照地址列表依次找到这些变量并传值;所以在混合接收不同类型数据时会有所影响。比如scanf(“%d%c%d”, &a, &ch, &b); 在键盘上输入“10 A 10”,则会把10给a,把’ ’(空格)给ch, 把’A’给b,但是b是整型变量,所以不接收这个值,所以 b 的值不变化。为了避免这种情况,在输入的时候,接收字符前不要输入空格,例如输入”10A 10”;或者使用逗号分隔符,例如scanf(“%d,%c,%d”, &a, &ch, &b),在输入的时候数据之间使用逗号隔开。建议使用逗号分隔符。
标签:
原文地址:http://www.cnblogs.com/siyingcheng/p/4584464.html