数据类型

本文深入探讨了C语言的基础知识,包括main函数参数argc和argv的作用,数据类型的字节大小,整型数据的范围,以及char、short、int和long等基本数据类型的具体表示。同时,通过具体题目解析了char型数据的运算规则和范围限制,以及int型数据的负数表示和边界条件。文章还详细解释了不同数据类型之间的转换和运算规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int main(int argc,char *argv[])
{
return 0;
}
argc:字符串长度
argv:argv就是我定义的一个指针数组,每个元素是一个char *类型的指针,这些指针存放着其对应字符串的首地址

return 0:程序执行到此次正常退出(告诉程序激活者执行到此处正常结束)

数据类型:

字节整型范围
1char-128—127
2short-32768—32767
4int-2147483648—2147483647
4/8long32位同int

题目:
1.char a,b,c.
a = 30,b = a++,c = ++a,d = (a++)*10
考察点:char型数据的范围和++a,a++
b = 30,c = 31,d = 310 = 101000000.
由于d超出了char的范围,char类型只要8位。因此d = 01000000 = 64.

2.int i = -2147483648.
求:-i ~i 1-i -1-i
考察点:负数机器码(补码)
r1. 5: 0000 0101
-5: 1111 1011<=================机器码(补码)

+2147483648:1000 0000 0000 0000 0000 0000 0000 0000
-2147483648: 1000 0000 0000 0000 0000 0000 0000 0000

-i:按位取反+1 -2147483648
~i:按位取反i 2147483647
1-i: 1-i = 1+(-i) = -2147483647
-1-i: -1+(-i) = 2147483647

    1:0000 0000 0000 0000 0000 0000 0000 0001
   -1:1111 1111 1111 1111 1111 1111 1111 1111
  • -i: 1000 0000 0000 0000 0000 0000 0000 0000
    ====
    1 0111 1111 1111 1111 1111 1111 1111 1111

3.int a = -5;
unsigned int b = 1;
int count = 0;
while(a++)
{
if(a + b > 5)
{
count++;
}
}

考察点:不同数据类型的转化和负数机器码

5: 0000 0000 0000 0000 0000 0000 0000 0101
-5: 1111 1111 1111 1111 1111 1111 1111 1011

无符号类型:所有位参与运算

a++-4-3-2-10123456
a+b>512333333345

熟练:计算机中数据都是以二进制形式存储的,正数为原码存储,负数为二进制补码形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值