目录
前提补充:
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
————————————————#