C语言进阶学习数据在内存中的存储

在这里插入图片描述在这里插入图片描述在这里插入图片描述

#include<stdio.h>

int main()
{
	char c1 = 'w';//char到底是signed还是unsigned char是不确定的,取决于编译器的实现
	signed char c2 = 'w';
	unsigned char c2 = 't';

	short int a = 10;//等价与short
	short b = 20;//short 是signed short
	signed short c = 30;
	unsigned short d = 40;
	return 0;
}

int main()
{
	int arr[10];//10个整型数组
	char ch1[5];//5个字符数组
	char ch2[4];//与ch1不同的类型
	return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

int main()
{
	int a = 3;
	//原码反码补码:00000000 00000000 00000000 00000011
	//                   00       00       00       03
	int b = -1;
	//原码:10000000 00000000 00000000 00000001
	//反码:11111111 11111111 11111111 11111110
	//补码:11111111 11111111 11111111 11111111
	//     FFFFFFFF

	return 0;
}
int main()
{
	int c = 1 - 1;
	//CPU加法器
	//1+(-1)
	//00000000 00000000 00000000 00000001
	//10000000 00000000 00000000 00000001
	//10000000 00000000 00000000 00000010 - 原码计算 - err

	//00000000 00000000 00000000 00000001
	//11111111 11111111 11111111 11111111
   //100000000 00000000 00000000 00000000 -补码计算 - 0
	//因此计算存储数据都是补码
	return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#include<stdio.h>
//测试编译器是小端还是大端
int main()
{
	int a = 1;//00 00 00 01
	//低       高
	//大端
	//00 00 00 01
	//小端
	//01 00 00 00
	char* p = (char*)&a;
	if (*p == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}

	return 0;
}


//封装函数

int check_sys()
{
	int a = 1;
	return (*(char*)&a);

}

int main()
{
	int ret = check_sys();
	if (1 == ret)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	return 0;
}

输出结果:

在这里插入图片描述

#include <stdio.h>
int main()
{
	char a = 128;
	printf("%u\n", a);//%u 打印无符号整数
	return 0;
}

输出结果:232 -27

在这里插入图片描述

#include<stdio.h>
#include<windows.h>
//死循环
int main()
{
	unsigned int i;//i>=0
	for (i = 9; i >= 0; i--)//满足条件死循环打印
	{
		printf("%u\n", i);
		Sleep(1000);
	}
	return 0;
}
int main()
{
	char a[1000];
	int i;
	for (i = 0; i<1000; i++)
	{
		a[i] = -1 - i;
	}
	printf("%d", strlen(a));
	return 0;
}

输出结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

unsigned char i = 0;//i<=255
int main()
{
	for (i = 0; i <= 255; i++)//一直满足条件死循环
	{
		printf("hello world\n");
	}
	return 0;
}

在这里插入图片描述
在这里插入图片描述
limits.h

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

int main()
{
	int n = 9;
	//00000000 00000000 00000000 00001001
	float *pFloat = (float *)&n;
	printf("n的值为:%d\n", n);//9
	printf("*pFloat的值为:%f\n", *pFloat);
	//0 00000000 00000000000000000001001 
	//E为-126 (-1)^0*0.00000000000000000001001
	//无穷小
	*pFloat = 9.0;
	//9.0
	//1001.0
	//1.001*2^3
	//0 10000010 00100000000000000000000
	printf("num的值为:%d\n", n);//很大的值
	printf("*pFloat的值为:%f\n", *pFloat);//9.0
	return 0;
}

输出结果:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值