六、循环
🎈while循环
C的while循环和Java是一样的
while(x>0)
{
printf("1");
}
🎈do-while循环
C的do-while循环也和Java是一样的
在进入循环的时候不做检查 在执行完一轮循环体的代码之后再来检查循环的条件是否满足
若满足 则继续下一轮的循环
若不满足 则结束循环
do
{
printf("0");
}
while(x>0);
🎈for循环
C的for循环和Java是一样的 只不过在ANSI C中 初始值需在for循环的外部定义 否则会报错
int i;
for (i=1;i<10;i++)
{
printf("1");
}
七、类型
🎈类型的分类
- 整数
- char
- short
- int
- long
- long long(C99独有)
- 浮点数
- float
- double
- long double(C99独有)
- 逻辑
- bool(C99独有)
- 指针
- 自定义类型
🎈整数
🚩所占字节数
注:1字节=8比特(bit)
- char - 1字节
- short - 2字节
- int - 4字节(取决于寄存器CPU是32还是64 通常意义是1个字)
- long - 8字节(有可能是4字节 取决于寄存器CPU是32还是64 通常意义是1个字)
- long long(C99独有) - 8字节
🧲为缩减篇幅 关于负数在计算机内部的二进制表示和补码之类的知识点 请参看我的另一篇博客:C语言中负数在计算机内部的二进制表示方式(以补码表示负数、整数的范围及所占字节数)
🚩unsigned关键字
char a=255;
printf("%d",a);
在C中 char的255默认是-1
在定义的时候添加unsigned
则可使该整数不以补码的形式表示
即 默认是以1开头来表示负数的 但加上了unsigned 1开头也表示正数了
如此 该整数没有负数部分 只有0和正数部分
这样 该数所能表达的范围 在正数部分就扩大了 但与此同时 没有了负数部分
例如:
unsigned char a=255;
这样 输出的就是255
了
一个字面量若要表示自己为unsigned 可在后面加上u或U
例如:
255U // 此时表示的不是十进制的-1 而是255了
🚩整数越界
整数是以纯二进制的方式进行运算的
例如:
11111111+1 = 100000000=0
01111111+1 = 10000000 = -128
10000000-1 =