一些C语言的规定

| | \0 | 0 | '0' | 'a' | | -------- | -------- | -------- | | |转义字符 | 数字0 |数字字符0 | 字母字符a | | ASCII码值 | 0 | 0 | 48 | 97 |

  1. 字符串的结束标志是:'\0',不算字符串的内容
  2. EOF - end of file - 文件结束标志
  3. 数组的大小(arr[ x ])里面的x要用常量,不能用变量;注意:const定义的常变量不能用于[ x ]中
  4. C语言中存储有符号数,规定最高位表示符号 原码:直接按照正负写出的二进制序列 反码:原码的符号位不变,其他位按位取反得到 补码:补码+1得到 / 原码符号位不变,其他位按位取反后+1得到
  5. 所有整数在内存中都是以二进制的补码的形式存储 对于正整数来说,它的原码,补码,反码相同 对于负整数来说,以二进制的补码形式存储 反码只是计算的中间状态

续第三天操作符

~ :对一个数的二进制按位取反

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

--/++

  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
  1. 前置++
#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

关系操作符

| > | >= | < | <= | != | == | | -------- | -------- | -------- | | 大于 | 大于等于 |小于 | 小于等于| 不等于 | 等于 |

逻辑操作符

  1. && 逻辑与:全为真才是真
#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
  1. || 逻辑或:有一个为真即为真
#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