C语言基础知识点2

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进制数字
C语言基础知识点2_第1张图片

#include 
int main()
{
	printf("%d\n", strlen("c:\test\328\test.c"));
	return 0;
}

在这里插入图片描述
C语言基础知识点2_第2张图片

  • \32被解析成一个转义字符而不上\328因为三位数字意味着为八进制,而八进制里面不能有8

3、操作符

  • 左移<< 每移动一位相当于乘以2
  • 右移>> 每移动一位相当于除以2
  • 位操作符 按位与& 按位或| 按位异或 ^
    float a=9/2 结果为4
    float a=9/2.0 结果才为4.5
  • 取余 :%
  • !逻辑取反
    if(!a)
    {
    //a为假的时候,执行
    }

C语言基础知识点2_第3张图片
**~按位取反 **
原码变为反码:除了符号位,其他位取反
反码变为补码:反码加1

C语言基础知识点2_第4张图片C语言基础知识点2_第5张图片

整数在内存中是补码(即0的32位按位取反以后,都变为32位1的时候就是补码,然后在通过转换为原码才在屏幕上输出值) ,但是在屏幕上输出的是原码-1 。
选择操作符

  • exp1 ? exp2 : exp3 ;条件1成立则输出条件2,条件1不成立则输出条件3
    max=a>b?a:b;
    常见关键字
    extends 声明外部符号
    register //大量使用的数据放在寄存器
    signed有符号的
    unsigned无符号的
    union联合体(共用体)
    void 无–空

  • 预处理指令(不是关键字) define
    C语言基础知识点2_第6张图片

  • 在define中如果x+y不加括号将会出现问题在下面运算中

C语言基础知识点2_第7张图片

  • typedef
    C语言基础知识点2_第8张图片
  • static
  • static修饰局部变量 :延长生命周期
    static修饰全局变量: 在整个工程中都可以使用 C语言基础知识点2_第9张图片C语言基础知识点2_第10张图片
    外部调用static没有用
    1、C语言基础知识点2_第11张图片
    C语言基础知识点2_第12张图片
    C语言基础知识点2_第13张图片

2、C语言基础知识点2_第14张图片

C语言基础知识点2_第15张图片

你可能感兴趣的:(c语言,指针,操作符)