文章图片
文章图片
文章图片
#includeint 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
//00000003
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
//测试编译器是小端还是大端
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
int main()
{
char a = 128;
printf("%u\n", a);
//%u 打印无符号整数
return 0;
}
输出结果:232 -27
文章图片
#include
#include
//死循环
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;
}
输出结果:
【C语言|C语言进阶学习数据在内存中的存储】
文章图片
推荐阅读
- C语言进阶|C语言进阶——数据在内存中的存储
- C语言|VC++6.0安装包(免费安装包)(中文)
- [C语言] 最小公倍数
- 刨析《C语言》进阶付费知识完结
- C语言与C++编程|看完这篇你还能不懂C语言/C++内存管理()
- c语言4
- c语言|C语言知识大杂烩(上)(1-10)
- c语言|动态+静态+文件操作 C语言实现通讯录
- 重新学习C语言day14-指针进阶