C语言复习-变量和数据类型

变量:一块固定大小的内存空间,可以存放可修改的数据(规定了数据的读取方式,以及数据的长度)

%ds输出,s会当成字符输出 %d针对的是十进制有符号整型(int) %u无符号 都是针对补码来输出的

%hd 十进制short %ld十进制long
%l 十进制float %lf 十进制double 默认小数点后面输出六位
%p十六进制输出地址

使用%d来输出long或%hd来输出int都有可能出错(数据截断)

原码反码补码:
正数:原码=反码=补码
负数:补码 = 反码+1 反码 = 原码除符号位取反

使用 二进制-0B 八进制-0 十六进制-0X,printf可以以八进制 十进制 十六进制输出不能以二进制输出
注:八进制 %o 十六进制%x 且都是无符号 要输出格式%#o %#x
在这里插入图片描述

unsigned int n = 0x80000000 以%d输出结果为-2147483648即-2^31
分析n 800000000 对应补码[1000 0000 …… 0000 0000]对应-2147483648
char类型-0表示-128一样的道理。

如果以不对应的格式输出,计算机会默认其满足输出格式来输出(而不是看其原本的类型)。

char 类型不能包含 ASCII 编码之外的字符

	char *s = "中";//合法
	char s = "中";//非法

转义字符
转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。\t占位符等于四个空格

取模
如果 % 左边是正数,那么余数也是正数;
如果 % 左边是负数,那么余数也是负数

全局变量,它的默认初始值始终是 0,局部变量,C语言并没有规定它的默认初始值是什么

类型转换:
所有的浮点运算都是以双精度进行的,即使运算中只有 float 类型,也要先转换为 double 类型,才能进行运算。
char 和 short 参与运算时,必须先转换成 int 类型。
有unsigned与int运算时int转为unsigned
在这里插入图片描述

无论是自动类型转换还是强制类型转换,都只是为了本次运算而进行的临时性转换,转换的结果也会保存到临时的内存空间,不会改变数据本来的类型或者值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值