初始C语言
2021-01-08 21:39
1236 查看
**操作符** <<左移操作符(对应的二进制序列左移一位) >>右移操作符 int a=1; int b=a<<1;(00000000000000000000000000000001) b=2(00000000000000000000000000000010) 位操作:二进制位操作 &按位与,|按位或,^按位异或 int a=3 int b=5; int c=a%b; (3:011 5:101) 十进制转化位二进制:1111(1*2^3+1*2^2+1*2^1+1*2^0) 按位与;同是为真是为1 按位或:有一个为真时为1 按位异或:都是1,都是0时为0;一个是1一个是0时为1;(对应的二进制位相同为0相异为1) a+=10(a=a+10)复合赋值符; 单目操作符,双目操作符,三目操作符: 单:一个操作数 双:两个操作数 三:三个操作数 C语言中0为假非0为真 int a=2; !a=0 sizeof求类型的大小(变量或者类型所占空间大小按字节打印) sizeof(a)=sizeof (int)=sizeof a 也可以求一个数组大小: int arr[10];十个整形元素的数组大小是40个字节 sizeof (arr);大小是40 字节 数组元素的个数:数组总大小除以每个元素的大小; int sum=sizeof(arr)/sizeof(arr[0])(数组总的大小) \0 0 '0'区分 \0的ASCLL是0; ~按位取反: ~0的值:00000000000000000000000000000000 取反 : 11111111111111111111111111111111 只要是整数在内存中存储的是补码,整数中的正数原码反码补码都相同 负数在内存中存储的是补码,打印的是原码 例子: 原码是直接按照正负写出的二进制序列 反码是符号位不变其他位按位取反 补码是反码加一 -2的原码:10000000000000000000000000000010 反码:1111111111111111111111111111101 补码:反码加一:111111111111111111111111111111111111110 --操作符++操作符: int a=10; int b=a++;(后置加加) 所以得出b的值是10,a是11; int b=++a;(前置加加) 所以b值是11,a的值是11; (类型):强制转换 int a=(int)3.14;强制转换:3.14是double类型强制转换成int 类型 关系操作符:>,<,==,>=,<= 0表示假一切非0表示真: &&逻辑与||逻辑或 int a=3; int b=5; int c=a&&b; c的值是1;(a和b都是真所以c的值也是真) 三目操作符: exp1?exp2:exp3:如果表达式1的值是真的话输出表达式2的值作为最终结果,如果表达式1的值是假的话输出表达式3的值作为最终结果。 逗号表达式: 下标: int arr[0]={0}; arr[4];(下标引用操作符) Add(a,b);(函数调用操作符) 常见的关键字:(不能和变量名冲突) int float .........c语言内置的关键字; auto:局部变量的前面省略了auto break,case; extern:其他源文件的变量可以被引用 register:寄存器关键字(计算机存储数据可以存在硬盘,内存,寄存器,高速缓存) 硬盘500g 内存4/6/8g 高速缓存 寄存器 ——————访问速度逐渐加快,造价越高 空间逐渐减小 CPU中央处理器:从内存拿数据到CPU计算;内存访问速度慢CPU访问速度快; 从寄存器里面拿速度更快,让内存的东西放到寄存器 int main() { register int a =10;(a定义为寄存器变量)a经常使用时 return 0; } int定义的变量是有符号的; unsigned int num无符号数 struct结构体关键字 union联合体、 typedef:类型重定义 typedef unsigned int u int; unsigned int=u int ; 局部变量用完时销毁; void text () a的值一直是1 { int a=1; a++; printf(“a=%d"\n,a); } 加上static: void text() a的值逐渐加一 { static int a=1; a++; printf("a=%d"\n,a); } 所以当static修饰局部变量时,生命周期延长了;出了作用域不在销毁; 当static修饰全局变量时: 加上static时改变了作用域,不可以在别的文件中使用; 总结:static修饰局部变量是改变了生命周期;修饰全局变量是改变了作用域,只能在当前文件中使用,出了该文件不能使用; static修饰函数时改变了函数的链接属性,改变了作用域不可以在别的文件中使用; 普通函数具有外部链接属性,但是被static修饰后无法被链接;
相关文章推荐
- C Primer Plus 学习笔记 第1章 初始C语言
- C语言中初始、增加和删除进程信号的操作方法简介
- C语言错误之--初始值(低级错误)
- 初始C语言
- 黑马程序员——基础笔记:初始C语言
- C语言学习-C语言初始
- C语言初始要点
- 初始c语言
- 8.Linux C语言 初始指针
- C语言数据结构堆栈初始代码
- C语言初始
- 初始C语言
- C语言对数组的初始赋值还有以下几点规定
- C语言对数组的初始赋值还有以下几点规定
- C语言初始指针(3)
- 俄罗斯方块和贪吃蛇游戏软件:C语言应用初始感受
- [面试算法]有一无符号整型数组,大小为10, 初始的数值随机,但在[0, 99]之间。请用C语言写一个过滤程序,令数组内的数据互不相等。
- C语言错误之--初始值(低级错误)
- Linux C语言:初始指针
- 福大pta--C语言--初始C语言