1、字符串+字符
结束标志为\0
字符串, 打印用%s
字符–打印用%c
char arr1[] ={“abc”}有4个字符,长度为3, 用strlen求长度的时候不算结尾默认的\0
-char arr2[]={‘a’,‘b’,‘c’};//没有默认的\0,长度为 随机值,不同平台打印不一样
2、转义字符
\101(\后面有三个数字,但是8进制里没有8,不能为\328)
\x30 30表示的是16进制数字
#include <stdio.h>
int main()
{
printf("%d\n", strlen("c:\test\328\test.c"));
return 0;
}
- \32被解析成一个转义字符而不上\328因为三位数字意味着为八进制,而八进制里面不能有8
3、操作符
- 左移<< 每移动一位相当于乘以2
- 右移>> 每移动一位相当于除以2
- 位操作符 按位与& 按位或| 按位异或 ^
float a=9/2 结果为4
float a=9/2.0 结果才为4.5 - 取余 :%
- !逻辑取反
if(!a)
{
//a为假的时候,执行
}
**~按位取反 **
原码变为反码:除了符号位,其他位取反
反码变为补码:反码加1
整数在内存中是补码(即0的32位按位取反以后,都变为32位1的时候就是补码,然后在通过转换为原码才在屏幕上输出值) ,但是在屏幕上输出的是原码-1 。
选择操作符
-
exp1 ? exp2 : exp3 ;条件1成立则输出条件2,条件1不成立则输出条件3
max=a>b?a:b;
常见关键字
extends 声明外部符号
register //大量使用的数据放在寄存器
signed有符号的
unsigned无符号的
union联合体(共用体)
void 无–空 -
预处理指令(不是关键字) define
-
在define中如果x+y不加括号将会出现问题在下面运算中
- typedef
- static
- static修饰局部变量 :延长生命周期
static修饰全局变量: 在整个工程中都可以使用
外部调用static没有用
1、
2、