目录
前提补充:
first :
second:
基本数据类型:
整型:
字符型 :
ASCII 码表 :
浮点型:
格式占位符 :
字符型数据的输入输出:
字符输入函数:
getchar();//单个字符
gets();//字符串
字符输出函数:
putchar();//单个字符
puts();//字符串
补充:
前提补充:
first:
数据的表现形式:常量和变量
常量:整型、实型(浮点)型、字符 、字符串、符号、地址常量。
变量:数据类型 + 变量名 (=数据 )
格式化输入函数: scanf(格式控制,地址列表);格式化输出函数:printf(格式控制,输出列表);
格式化输入函数 :
scanf( "__ ", __ );
域宽(例如%3d)
以空格、enter键结束读取
%d%d%d%d:输入时需要间隔
%c%c%c%c:输入时不需要间隔 // 间隔也算字符的
格式化输出函数 :
printf("__" , __ );
————————————————————
second:
整型常量
实型常量:两种表现形式——十进制小数形式、指数形式(科学计数法)
十进制小数形式:有数字(包括+-)和小数点组成。(例如 .1 、1. )
指数形式:__e/E__ (前后数必须要有,后数必须为整数)
字符常量:有普通字符常量和转义字符常量两部分
普通字符常量:'_' (单引号内只有一个字符)
转义字符常量:'\___' (是以字符\开头的字符序列,一种特殊形式的字符常量)
\n | 回车换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\b | 移动光标 |
\a | 播放系统错误提示音 |
\f | 换页符 |
' \v ' '\f ' :对终端显示屏无影响,只影响命令打印机的执行操作
字符串常量:"___" (双引号引起来的若干个字符)
符号常量:#define 标识符 常量
(宏定义,是指可以定义任何语句或片段,本质是替换,数据类型不知,末尾没有分号)
const 数据类型 标识符 = 常量;
(”const定义”,定义常量,末尾有分号)
地址常量:每一个常量、变量、地址等参与计算与存储的数据在内存中对应的地址。
————————————————————————————————
基本数据类型:
整型:
int | 4 | -2,147,483,648 ~~ 2,147,483,647 (21亿) |
short | 2 | -32,768 ~~ 32,767 |
unsigned short | 2 | 0~~65,535 |
long | 4 | |
unsigned long | 4 | 0~~4,294,967,295(42亿) |
long long | 8 | |
unsigned long long | 8 |
用sizeof()字节运算符可查关键字的内存大小
字符型 :
char ___ = '_' ;
字符型数据在内存中以ASCII码值进行存储,占1字节
A~Z:65~90
a~z:97~122
0~9:48~57
ASCII 码表 :
下面的 ASCII 码表包含数值在0-127之间的字符的十进制、八进制以及十六进制表示.
十进制 | 八进制 | 十六进制 | 字符 |
---|---|---|---|
33 | 41 | 21 | ! |
34 | 42 | 22 | " |
35 | 43 | 23 | # |
36 | 44 | 24 | $ |
37 | 45 | 25 | % |
38 | 46 | 26 | & |
39 | 47 | 27 | ' |
40 | 50 | 28 | ( |
41 | 51 | 29 | ) |
42 | 52 | 2A | * |
43 | 53 | 2B | + |
44 | 54 | 2C | , |
45 | 55 | 2D | - |
46 | 56 | 2E | . |
47 | 57 | 2F | / |
48 | 60 | 30 | 0 |
49 | 61 | 31 | 1 |
50 | 62 | 32 | 2 |
51 | 63 | 33 | 3 |
52 | 64 | 34 | 4 |
53 | 65 | 35 | 5 |
54 | 66 | 36 | 6 |
55 | 67 | 37 | 7 |
56 | 70 | 38 | 8 |
57 | 71 | 39 | 9 |
58 | 72 | 3A | : |
59 | 73 | 3B | ; |
60 | 74 | 3C | < |
61 | 75 | 3D | = |
62 | 76 | 3E | > |
63 | 77 | 3F | ? |
64 | 100 | 40 | @ |
65 | 101 | 41 | A |
66 | 102 | 42 | B |
67 | 103 | 43 | C |
68 | 104 | 44 | D |
69 | 105 | 45 | E |
70 | 106 | 46 | F |
71 | 107 | 47 | G |
72 | 110 | 48 | H |
73 | 111 | 49 | I |
74 | 112 | 4A | J |
75 | 113 | 4B | K |
76 | 114 | 4C | L |
77 | 115 | 4D | M |
78 | 116 | 4E | N |
79 | 117 | 4F | O |
80 | 120 | 50 | P |
81 | 121 | 51 | Q |
82 | 122 | 52 | R |
83 | 123 | 53 | S |
84 | 124 | 54 | T |
85 | 125 | 55 | U |
86 | 126 | 56 | V |
87 | 127 | 57 | W |
88 | 130 | 58 | X |
89 | 131 | 59 | Y |
90 | 132 | 5A | Z |
91 | 133 | 5B | [ |
92 | 134 | 5C | \ |
93 | 135 | 5D | ] |
94 | 136 | 5E | ^ |
95 | 137 | 5F | _ |
96 | 140 | 60 | ` |
97 | 141 | 61 | a |
98 | 142 | 62 | b |
99 | 143 | 63 | c |
100 | 144 | 64 | d |
101 | 145 | 65 | e |
102 | 146 | 66 | f |
103 | 147 | 67 | g |
104 | 150 | 68 | h |
105 | 151 | 69 | i |
106 | 152 | 6A | j |
107 | 153 | 6B | k |
108 | 154 | 6C | l |
109 | 155 | 6D | m |
110 | 156 | 6E | n |
111 | 157 | 6F | o |
112 | 160 | 70 | p |
113 | 161 | 71 | q |
114 | 162 | 72 | r |
115 | 163 | 73 | s |
116 | 164 | 74 | t |
117 | 165 | 75 | u |
118 | 166 | 76 | v |
119 | 167 | 77 | w |
120 | 170 | 78 | x |
121 | 171 | 79 | y |
122 | 172 | 7A | z |
123 | 173 | 7B | { |
124 | 174 | 7C | | |
125 | 175 | 7D | } |
126 | 176 | 7E | ~ |
127 | 177 | 7F | DEL |
浮点型:
float | 单精度 | 4字节 |
double | 双精度 | 8字节 |
long double | 长双精度 | 8/16字节 |
在编译时浮点型常量按double型处理
例如 float a =3.14159,float变量分配4字节,若3.14159浮点型常量分配8字节,编译器会发出警告,影响程序运行结果的精确度,
即,
scanf读取double类型,需使用%lf格式。
printf输出double类型,若使用%f格式不丢失数据精度而只是输出显示float精度;
强制指定常量的类型:常量F/f 为单精度float,常量L/l (尽量用L)为长双精度long double。
——————————————————————————
格式占位符 :
整型
输入输出占位符 | 描述 |
%d | int |
%hd | short |
%ld | long |
%lld | long long |
%u | unsigned int |
%hu | unsigned short |
%lu | unsigned long |
%llu | unsigned long long |
数据类型__占位标识符需相一致
%f | float |
%lf | double |
%(-)m.nf | m总宽度(包括小数点),n小数部分位数,- 靠左对 齐 |
计算机在输出结果时一律保留小数点后六位,小数多余的四舍五入,不足的补0
%s | 输出字符串 |
%p | 输出地址 (十六进制形式) |
%0 | 输出八进制 |
%x | 输出十六进制 |
%% | 输出% |
——————————————————————————————————
字符型数据的输入输出:
■. getchar() 和 putchar() 、 gets() 和 puts()
四个函数都包含在头文件<stdio.h>(stand input & output)里
字符输入函数:
getchar();//单个字符
char ch;
ch = getchar();
——————
printf(“%c”,getchar());
__________
gets();//字符串
字符串的首地址
以enter键结束读取(空格也可输入)
字符输出函数:
putchar();//单个字符
putchar(‘a’);//a
_________
char a = 'x';
putchar(a); //x
基本格式:
字符变量 = getchar();
putchar(字符变量);
—————
puts();//字符串
字符串的首地址或字符串常量
自动换行
char name[]="小黑chenchne"
puts(name);
或
puts("123");
=============
补充:
1.转义字符常量:
'\\' | \ |
'\'' | ' |
'\"' | " |
'\?' | ? |
2.输入的语法全为英语模式下的代码。
3.变量名符合标识符的命名规则:---只能由字母、数字、下划线'_'组成
---不能以数字开头
---不允许是关键字(关键字全为小写,C语言区分大小写)
(同一作用域范围内定义的标识符不可重名,若重名就近原则)
$ | √ |
# | × |
空格 | × |
中文 | × |
4.计算机内存大小单位及其关系:
1B=8b, 位
1KB=1024B, 字节
1MB=1024KB, 千字节
1GB=1024MB, 兆字节
1TB=1024GB, 吉字节
1PB=1024TB, 兆兆字节
1EB=1024PB,
1ZB=1024EB,
1YB=1024ZB.
5 .
sizeof(); //求字节运算符,一个数据类型所占的字节数
例如 printf("%d\n",sizeof(int)); //4
6.
float , 小数精确6~7位
double,小数精确14~15位
7.
字符串常量:
C语言规定,在每一个字符串常量的结尾,计算机系统自动加一个字符'\0',作为该字符的结束标识符。
所以,字符在内存中会多占一个字节(所以输入数据时留一字节),且我们可以根据是否有'\0'来判断字符串是否结束。
例如 " " ,空格占一个字节,共两个字节; "黄色手套22" ,共11个字节。
8.
八进制转义字符: '\---' 或 '\0---'
十六进制转义字符:'\--' 或 '\x--' 或 '\0x--'
转义字符的长度都为1字节
字符串结束标识符'\0'不会算入长度
码值参照ASCII码表,
ASCII范围0~127:八进制'\000'~'177' ,十六进制'\x00'~'\x7f'
输出数字0~9:八进制'\60'~'\71' ,十六进制 '\x30'~'\x39',十进制48 ~57
————————————————#