C语言学习笔记——数据的存储章节

学习小结

c语言数据的存储学习笔记汇总

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//数据的存储
//1、数据类型的详细介绍
//2、整形在内存中的存储:原码 反码 补码
//3、大小端字节库介绍及判断、
//4、浮点型在内存中的存储解析

//c语言的类型分为两类
//1、内置类型(语音本身自带的类型)
// char
// short
// int
// long
// float
// double
// ……
//2、自定义类型(构造类型)
//数组类型
//结构体类型 struct
//枚举类型 mnum
//联合类型 union

//{
//	int a = 10;     //0a 00 00 00
//	float f = 10.0; //00 00 20 41
//	//printf("%d\n", sizeof(int)); //4
//	//printf("%d\n", sizeof(float));//4
//
//
//	return 0;
//}

//指针类型

//空类型
//void 表示空类型(无类型)
//int main()
//void test(void)//括号内放void,表示不需要参数
//{
//	printf("hehe\n");
//}
//int main()
//{
//	test();
//	return 0;
//}

//整形在内存中的存储
//int main()
//{
//	int a = 20;//14 00 00 00
//	int b = -10; //f6 ff ff ff
//	return 0;
//}
//对于整形来说,数据存储到内存中的是补码
//在计算机中,数值一律用补码来表示和存储

//判断当前机器的字节序是什么
//int check_sys()
//{
//	int a = 1;
//	char* p = (char*)&a;
//	if (*p == 1)
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//int main()
//{
//	//int a = 1;
//	//char* p = (char*)&a;
//	printf("%d", *p);
//	//if (*p == 1)
//	//{
//	//	printf("小端\n");
//	//}
//	//else
//	//{
//	//	printf("大端\n");
//	//}
//	//如果返回1,表示小端
//	//如果返回0,表示大端
//	int ret=check_sys();//检测大小端
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//	return 0;
//}

//%u 打印的是十进制的无符号数字

//int main()
//{
//	int i = -20;
//	unsigned int j = 10;
//	printf("%d\n", i + j);
//	//按照补码的形式进行计算,最后格式化成为有符号整数
//	return 0;
//}

//#include<windows.h>
//int main()
//{
//	unsigned int i;
//	for (i = 9; i >= 0; i--)
//	{
//		printf("%u\n", i);
//		Sleep(100);//让执行速度停一会
//	}
//	return 0;
//}

//一个char的范围为-128到127
//#include<string.h>
//int main()
//{
//	char a[1000];
//	int i;
//	for (i = 0; i < 1000; i++)
//	{
//		a[i] = -1 - i;
//	}
//	printf("%d ", strlen(a));//255
//	return 0;
//}

//unsigned char i = 0;//unsigned char 类型能够存放数字的范围是0到255
//int main()
//{
//	for (i = 0; i <= 255; i++)
//	{
//		printf("hehe\n");
//	}
//	return 0;
//}
//无符号数容易导致死循环,注意无符号的使用范围

//浮点数在内存中的存储
//int main()
//{
//	double d = 1E10;//1E10是浮点数的科学计数法表示形式
//	printf("%f\n", d);//10000000000.000000
//	return 0;
//}

//#include<limits.h>//此头文件可以查看char short int long 的取值范围
//#include<float.h>//此头文件可以查看浮点数的取值范围
//根据国际标准IEEE(电子和电气工程协会)754,任何一个二进制浮点数V,可以表现为
//(-1)^s * m * 2^E
//9.0
//1001.0
//(-1)^0 * 1.001 * 2^3
//(-1)^s * m     * 2^E
//int main()
//{
//	int i = 9;
//	float* p = (float*)&i;
//	printf("%d\n", i);
//	printf("%f\n", *p);
//
//	*p = 9.0;
//	printf("%d\n", i);
//	printf("%f\n", *p);
//	//由此上可知float和int类型在内存中的存储方式不一样
//	//整形存储的是二进制的补码
//
//	printf("%d\n", sizeof (float));
//	return 0;
//}

以上代码均在vs2022环境下编译

猜你喜欢

转载自blog.csdn.net/qq_72935001/article/details/126242828
今日推荐