/*
指针常量(指针修饰常量):指向常量的指针(指针指向可变,内容不可变)const char * p 常量 指针 变量名
常量指针(常量修饰指针):常量类型的指针(指针指向不可变,内容可变)char * const p 指针 常量 常量名
在32位系统上int,long占4个字节,long long 占8个字节
float在内存的存储方式:
xttttttt tmmmmmmm mmmmmmmm mmmmmmmm
x:符号位 t:指数位从127开始 m:底数位(第一位的1可以省略)
1.25 》 1.01(1.(0.25 x 2=0.5) :0 (0.5 x 2=1):1)》1.01 x 2^0 》
0 0111111 10100000 00000000 00000000
double在内存的存储方式:
1位符号位11位指数位52位底数位
int arrs[3] [3] ={{1,2},{3,4},{5,6}}
不足的自动补0即arrs[0] [2]=0
int * p =arrs; * ((p+i*3)+j) 》数组i,j的值
* (* (arrs+i)+j) 数组i,j的值
正整数的原码,反码,补码为本身:
负整数的反码为:符号位不变,其余位按位取反
负数的补码为:反码+1
char类型的范围为-128~+127
+127:01111111
-128:10000000
-127:11111111
+127+1=-128:10000000
-128-1=+127:01111111
*/
int main()
{
float f0=3.141592f,f1=-3.141592f,f2=31415.92f,f3=-31415.926f,f4=3.14f;
int ch1=-2147483648,ch2=2147483647;
// printf("%f %f %f %f\n",f0,f1,f2,f3);
float_fomat_char(&f0);
float_fomat_char(&f1);
float_fomat_char(&f2);
float_fomat_char(&f3);
float_fomat_char(&f4);
printf("char:");
printf("%d=%d? %d %d=%d? %d\n",(ch1-1),(ch2),(ch1-1)==ch2,(ch1-1),(ch2),(ch2+1)==ch1);
return 0;
/*
3.141592:fomat:216 15 73 64
-3.141592:fomat:216 15 73 192
31415.919922:fomat:215 111 245 70
-31415.925781:fomat:218 111 245 198
3.140000:fomat:195 245 72 64
char:2147483647=2147483647? 1 2147483647=2147483647? 1
*/
评论