基本数据类型
- 整数
类型 | 符号 | 字节 |
---|---|---|
整型 | int | 4Byte |
短整型 | short int | 2Byte |
长整型 | long int | 8Byte |
- 浮点数
类型 | 符号 | 字节 |
---|---|---|
单精度浮点数 | float | 4Byte |
双精度浮点数 | double | 8Byte |
- 字符
类型 | 符号 | 字节 |
---|---|---|
单字符 | char | 1Byte |
复合数据类型
- 结构体
- 枚举
- 共用体[基本不用]
变量
- 变量的本质是内存中的一段存储空间
- 变量的定义
数据类型 变量名 = 值
或
数据类型 变量名
变量名 = 值
#include <stdio.h>
int main(void)
{
int i; //在内存申请1块int大小空间
i = 3; //将3存放进内存块中
printf ("i = %d", i); //到内存块中将i读出
return 0;
}
进制
%d以十进制输出
%x或%X 表示以十六进制输出
%o表示以八进制输出
常量表示方式及存储方式
- 整数 整数以补码的二进制方式存放在内存当中
- 十进制: 传统写法
- 十六进制: 前面增加0x或0X
- 八进制: 前面增加0
浮点数 以IEEE754标准的二进制方式存放在内存中
- 传统写法
float x = 3.2; - 科学记数法
float x = 3.2e3;
float x = 123.45e-2;
- 传统写法
字符 将字符以ASCII码转换为数字,将数字以补码二进制存放在内存
- 单字符用单引号
‘A’ 字符A
‘AB’ 错误
“AB” 正确 - 字符串用双引号
“A” 正确,表示的是 ‘A’ ‘\0’ 的组合,\0为结束。
- 单字符用单引号
#include <stdio.h>
int main(void)
{
float x = 123.45e-2f; //实数默认为double类型
print("%f\n", x)
}
什么是字节
字节是存储数据的单位,并且是CPU硬件能够访问的最小单位(1Byte=8bits)
不同数据类型转换(相互赋值溢出问题)
ASCII
ASCII规定了,不同字符使用什么整数值去表示
基本输入输出
printf
printf (“字符串”);
printf(“输出控制符“,输出参数);
printf(“输出控制符1,输出控制符2,输出控制符3”, 输出参数1, 输出参数2, 输出参数3);
- printf(“输出控制符1 非输出控制符,输出控制符2”, 输出参数1, 输出参数2);
%d
%ld
%c
%f
%lf
%x(%X,%#x,%#X)
#include<stidio.h>
int maint(void)
{
int i=5;
int j=6;
int k=7;
printf("i = %d,j = %d,k = %d", i, j);
return 0;
}
A:
scanf 通过将数据输入到变量中
scanf(“输入控制符”, &输入参数);
将从键盘输入数据,按照输入控制符格式存入到以输入参数值地址的变量中#include<stdio.h> int main(void) { int i; scanf("%d", &i); //&i 表示i的地址 &是一个取地址 printf("i = %d", i); return 0; }
scanf(“非输入控制符 输入控制符”, &输入参数);
#include<stdio.h> int main(void){ scanf("m%d", &i); //m非输入控制符,输入时必须输入m+数字,m123 return 0; }
Q:如果输入m123n,打印出后结果会是什么 A:m123,识别m正常,识别123对应类型%d正常,n不能识别,丢弃。
scanf(“输入控制符1,输入控制符2”,&输入参数1,&输入参数2);
#include<stdio.h> int main(void) { printf("Please Input 3 Num, divided by , \n"); scanf("%d,%d,%d", &i, &j, &k); printf("Three Num is:%d,%d,%d", i, j, k); return 0; }