目录
3.初始化(initialize)变量: 在声明变量时就给变量一个初始值。
5. 可移植类型 stdint.h 和 inttypes.h (前期用不到)
6.float、double和long double cha (常用的几个浮点型)
9.类型大小 运算符 sizeof 比如sizeof(int)
3.1 示例程序
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
float weight;
float value;
printf("Are you worth your weight in platinum ?\n");
printf("Let's check it out.\n");
printf("Please enter your weight in pounds: \n");
//获取用户的输入
scanf("%f",&weight);
//假如白金的价格是每盎司$1700
//14.5833用于把英镑常衡盎司转换为金衡盎司
value = 1700 * weight * 14.5833;
printf("Your weight in platinum is worth $%.2f.\n",value);
printf("You are easily worth that! If platinum prices drop,\n");
printf("eat more to maintain your value.\n");
return 0;
}
在printf()中使用%f来处理浮点值。%.2f中的.2用于精准控制输出,指定输出的浮点数只显示小数点后面2位。(格式化字符串,用于控制输出精度)
在scanf()函数使用&符号表明找到weight变量的地方
3.2 变量和常量。
变量(variable):(程序运行过程) 可以变化的量。
常量(constant):(程序运行过程)不变的量。
3.3 数据:数据类型关键字
数据有多种类型,比如整数(1)、浮点数(1.01),字符('A')等。
C语言通过 数据类型来表示不同的数据。
通过关键字可以用来标记这些数据类型。
char关键字用于指定字母和其他字符(如,#,$,%,*) char类型也可以表示较小的整数
double和long double 表示带小数点的数
_Bool类型表示布尔值(true或false)
_Complex(复数类型)和_imaginary(虚数类型)
位、字节和字
位是计算机内存的基本构建块
字节(byte)是常用的计算机存储单位 1字节=8位
字(word)是设计计算机时给定的自然存储单位 ,计算机的字长越大,其数据转移越快,允许的内存访问也更多
整数和浮点数
对程序员来说,书写方式不同;对计算机来说,存储方式不同
(tips)浮点数:
计算机把浮点数分为小数部分和整数部分来表示且分开存储
由于计算机是二进制来存储数据所以计算机的浮点数不能表示所有的值,浮点数通常是实际值的近似值(详细学习计组)
3.4 C语言基本数据类型
1.int 类型 (整型)
声明int变量 :
int erns;
int hogs, cows, goats;
给变量值:
1.赋值: cows = 112;
2.通过函数(如scanf())
3.初始化(initialize)变量: 在声明变量时就给变量一个初始值。
int hogs = 21;
int cows = 32, goats = 14;
/*声明为变量创建和标记存储空间,并为其指定初始值*/
int类型常量
常数 21、32、-12等等都是整型常量。C语言把大多数整型常量看作int类型。
打印int值
使用printf()函数可以打印int类型值。//printf("%d", my_int);
八进制和十六进制
使用前缀0x或0X表示十六进制
0前缀表示八进制
显示八进制和十六进制
%o以八进制显示 //%#o 显示前缀
%x以十六进制显示 //%#x %#X 显示前缀 (加上一个#)
2.其他整数类型(多数时间用不到)
short int (简写short) 占的存储空间可能比int少,用于较小数值场合来节省空间
long int 或long 占的空间比int多,较大数值
long long int 或long long 占的空间比long 多, 更大数值
unsigned int 或unsigned 非负数。
在有符号类型前面加关键字signed,可强调这个类型是有符号类型(可正可负)//short 和 signed short ,效果一样,后者强调它可能为负。
//后缀说明:在数字后加L: 12L 意味着将把12看作是long型数据,后缀LL为 long long 加U为 unsigned
//整数溢出,当数字范围大于数据类型范围时,会产生溢出。溢出时,将回到最小值。例如:int的最大表示值是2147483647
当你再对这个数加1时,就会溢出,回到最小值 -2147483648
打印short、long、long long、和unsigned类型
unsigned int %u
long %ld
3.char 字符
从技术层面来说,char是整数类型(因为char类型实际上存储的是整数而不是字符,利用数字编码(ASCII码)来表示字符
C语言把 1 字节定义为char类型占用的位(bit)数,所以无论是16位还是32位系统,都可以使用char类型
4._Bool类型 (非必要)
5. 可移植类型 stdint.h 和 inttypes.h (前期用不到)
6.float、double和long double cha (常用的几个浮点型)
7.复数和虚数(特殊计算会用到)
关于C语言中的Complex(复数类型)和imaginary(虚数类型)https://blog.csdn.net/zxxssdsd/article/details/9948817
8.其他类型
9.类型大小 运算符 sizeof 比如sizeof(int)
3.5 使用数据类型
选择合理的变量和类型,
3.6 参数和陷阱
3.7 转义序列示例
转义序列(不一定在所有的显示设备上都起作用)
\a --警报(ANSIC)
\b --退格
\f --换页
\n --换行
\r --回车
\t --水平制表符
\v --垂直制表符
\ --反斜杠(\)
’ --单引号
" --双引号
? --问号
\0oo --八进制值( oo 必须是有效的八进制数,即每个 o 可表示 0 ~7 中的一个数)
\xhh --十六进制( hh 必须是有效的十六进制数,即每个 h 可表示 0 ~f 中的一个数)
3.7.2 提到了缓冲区的概念。
printf()什么时候把输出发送到屏幕上?
开始printf发生内容到 缓冲区 ,然后缓冲区的内容再发送到屏幕上,
缓冲区满/换行/输入 时,缓冲区的数据发送到屏幕(或文件)上。称为刷新缓冲区。