#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;
}
输出结果: