一些C语言的规定
| | \0 | 0 | '0' | 'a' | | -------- | -------- | -------- | | |转义字符 | 数字0 |数字字符0 | 字母字符a | | ASCII码值 | 0 | 0 | 48 | 97 |
- 字符串的结束标志是:'\0',不算字符串的内容
- EOF - end of file - 文件结束标志
- 数组的大小(arr[ x ])里面的x要用常量,不能用变量;注意:const定义的常变量不能用于[ x ]中
- C语言中存储有符号数,规定最高位表示符号 原码:直接按照正负写出的二进制序列 反码:原码的符号位不变,其他位按位取反得到 补码:补码+1得到 / 原码符号位不变,其他位按位取反后+1得到
- 所有整数在内存中都是以二进制的补码的形式存储 对于正整数来说,它的原码,补码,反码相同 对于负整数来说,以二进制的补码形式存储 反码只是计算的中间状态
续第三天操作符
~ :对一个数的二进制按位取反
0取反为1,1取反为0
#include <stdio.h>
int main()
{
int a = 0;
int b = ~a;// b是有符号的整形,最高位代表符号:1代表负号,0代表正号
printf("%d\n", b);//打印原码
return 0;
}
//输出结果为 -1
--/++
- 后置++
#include <stdio.h>
int main()
{
int a = 10;
int b = a++;//后置++,先使用a,再++
printf("a=%d\nb=%d\n", a, b);
return 0;
}
//输出结果为a = 11,b = 10
- 前置++
#include <stdio.h>
int main()
{
int a = 10;
int b = ++a;//前置++,先使用,再++
printf("a=%d\nb=%d\n", a, b);
return 0;
}
//输出结果为a = 11,b = 11
间接访问操作符(解引用操作符)
格式:(类型) - 强制类型转换
#include <stdio.h>
int main()
{
double a = (int)3.14;
printf("%lf\n", a);
return 0;
}
//输出为3.000000
关系操作符
| > | >= | < | <= | != | == | | -------- | -------- | -------- | | 大于 | 大于等于 |小于 | 小于等于| 不等于 | 等于 |
逻辑操作符
- && 逻辑与:全为真才是真
#include <stdio.h>
int main()
{
int a = 5;
int b = 6;
int c = a && b;//真与真,结果为真,默认输出1
printf("%d\n", c);
return 0;
}
输出为1
#include <stdio.h>
int main()
{
int a = 0;
int b = 6;
int c = a && b;//假与真,结果为假,默认输出0
printf("%d\n", c);
return 0;
}
输出为0
- || 逻辑或:有一个为真即为真
#include <stdio.h>
int main()
{
int a = 0;
int b = 6;
int c = a || b;//假或真,有一个为真,输出为真默认值1
printf("%d\n", c);
return 0;
}
输出为1
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = a || b;//假或假,没有真。输出假默认为0
printf("%d\n", c);
return 0;
}
输出为0