C语言注意点

/*
 指针常量(指针修饰常量):指向常量的指针(指针指向可变,内容不可变)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
*/
end
  • 作者:(联系作者)
  • 更新时间:2024-07-27 17:31
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者公众号二维码(公众号二维码见右边,欢迎关注)
  • 评论

    新增邮件回复功能,回复将会通过邮件形式提醒,请填写有效的邮件!