c语言的内置数据类型有
char(字符数据类型) 占1一个字节
short(短整型) 占2个字节
int(整型) 占4个字节
long(长整型) c语言标准规定,sizeof(long)>=sizeof(int) , 所以long占4个字节
long long(更长的整型) 占8个字节
float(单精度浮点型) 占4个字节,可以表示的精度比double低
double(双精度浮点型) 占8个字节,可以表示的精度高
当创建一个 float类型的变量时,要在数据后面加上f,不然会默认为double类型的,即
float fnum = 2.4f; //如果不加f,就会默认2.4为double类型。
原码比补码多表示一位说明
1byte = 8bit; //即1字节占8位
unsigned char 的存储范围就为:
0000 0000 ---- 1111 1111 即0到255
signed char 的话,第一位为符号位,
若是原码表示的话,
0 000 0000 ---- 0 111 1111 为正数 0 到 127
1 000 0000 ---- 1 111 1111 为负数 0 到 -127,
可知,原码的0有两种表示方法: 为 0 000 0000 和 1 000 0000
但是负数在计算机中是按补码来存储的,补码的表示范围如下
0 000 0000 ---- 0 111 1111 该范围表示的为正整数,为0到127
1 000 0000 ----- 1 111 1111 该范围表示的为负数,-128到-1,计算机在存储有符号数的补码时直接将1000 0000 置为-128。 所以补码的0只有一种表示方式 ,即为 0 000 0000
而1 000 0000 在补码中表示为-128,这就是补码比原码多表示一个负数的原因,将原码的 -0 表示为 -128。
想要将该错误提示清除,就需要在创建的源文件第一行加上
#define _CRT_SECURE_NO_WARNINGS
也可以直接设置源文件默认格式
更改VS中的默认源文件格式,搜索newc++file.cpp文件,将该文件复制到桌面,
将想要的格式在文件中写入保存,然后粘贴到该文件的原文件夹,点击替换文件,则在VS中再创建源文件时就会有写的格式了。
变量的作用域和生命周期
局部变量的作用域是变量所在的局部范围
全局变量的作用域是整个工程,但是当在Add.c中创建一个全局变量int val = 10; 想要在test.c中访问时,就要在test.c中用extern int val 先声明一下,然后才能在test.c中使用。
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
全局变量的生命周期是:整个程序的生命周期。