【操作符与关键字】

简介: 【操作符与关键字】

一. 操作符

    移位操作符--移动二进制的位   << >>

    复合赋值符

   a += 3  -= *= /= &= ……

  1.      单目操作符

! 逻辑反操作 -----0为假  非0为真

 -  负值

 +   正值

&   取地址

sizeof 操作数的类型长度 以字节为单位

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

* 间接访问操作符

-- 前置 后置

++ 前置 后置

++a // a++

前置++ 先加1,后使用 后置++ 先使用,后加1

     强制类型转换

int a = (int)3.14

     逻辑操作符

&& 与  ||  或

     三目操作符

(a >b ) ? (a) :(b) 真为a 假为b

      逗号表达式

 从左向右依次计算

      exp1,exp2,exp3,

二. 关键字

常见关键字

---预设好的 不能自己创造 变量的名字不能是关键字

 类型有关 auto char const double enum

                float int long register short

                signed sizeof static struct

                typedef union unsigned void

 控制逻辑 break continue case default do

                else if for goto return while switch

 申明外部符号 extern

  volatile const

      typedof 类型定义(重命名)

typedef unsigned int  uint;
int main(){
unsigned int num1 = 0 ;
uint num2 = 0;
return 0;
}

// 可以让复杂的类型简单化

//num1 num2 是同一种类型的变量

static 修饰变量和函数

修饰局部变量 (进入函数创建 出了函数销毁(空间还给操作系统))
void test() {
  int a = 2;
  a++;
  printf("%d\n", a);
}
int main() {
  int i = 0;
  while (i < 5) {
    test();
    i++;
  }
  return 0;
}

输出 3\n3\n3\n3\n3\n

加上static之后

//static 修饰局部变量 使得局部变量出了作用域并不销毁,下一次进入函数,依然使用的是上次留下的值

//如果反复调用函数,产生累计的效果

//本质上:static修饰局部变量使得变量的存储位置发生变化

//本来局部变量是放在栈区,被static修饰后,放在内存的静态区,感觉是生命周期变长

//作用域没有变化

void test() {
  static int a = 2;
  a++;
  printf("%d\n", a);
}
int main() {
  int i = 0;
  while (i < 5) {
    test();
    i++;
  }
  return 0;
}

输出 3\n4\n5\n6\n7\n

编译器在编译的时候

是每个.c文件单独编译的 (链接)

解决方法: (声明外部符号) extern int g_val

 

 

         

修饰全局变量

static 修饰全局变量后,使得这个全局变量只能在自己所在的源文件内部使用

其他源文件无法使用

本来一个全局变量是具有外部链接属性的,只要合理的声明,全局变量在其他源文件内部,可以使用

而被static 修饰后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用了

修饰函数

两个头文件

 

加上static就不能调用了

//本来函数是具有外部链接属性的

//在其他源文件内部可以被调用

//被static修饰之后外部链接属性就变成了内部链接属性

//就只能由自己所在的源文件内部使用

 register 寄存器关键字

电脑上有存储设备  寄存器  4字节 几十个

                                内存      8G/6G/32G

                               硬盘     500G/1T

                           (网盘)    1T/2T 免费

register int a  = 10; 建议性关键字 (建议a放在寄存器中)--最后由编译器来界定是否

放入

                   因为多次调用a 寄存器里反应更快

相关文章
|
6月前
|
存储 C++
C/C++中位操作符(&,|,^,~)的详解使用
C/C++中位操作符(&,|,^,~)的详解使用
|
存储 索引
【操作符】
【操作符】
39 0
|
23天前
操作符详解
操作符详解
8 0
|
6月前
|
C语言
条件操作符
条件操作符(三目操作符)是C语言中的唯一一个三元运算符,形式为:`表达式1 ? 表达式2 : 表达式3`。如果`表达式1`为真,执行`表达式2`并返回结果;否则执行`表达式3`并返回结果。例子展示了如何用条件操作符输出两个数中的较大值。
32 1
|
6月前
|
存储 编译器
操作符详解1(一)
本文介绍了编程中的操作符分类和位操作,包括算术操作符(如 +, -, *, /, %)、移位操作符(<<, >>)、位操作符(&, |, ^)、赋值操作符、单目操作符、关系操作符、逻辑操作符和条件操作符。还讨论了原码、反码和补码的概念,以及左移(<<)和右移(>>)操作符的工作原理,包括逻辑右移和算术右移的区别。最后提到了位操作符按位与(&)、按位或(|)、按位异或(^)和按位取反(~)的运算规则。
40 1
|
6月前
|
存储 程序员 C语言
操作符详解1(二)
该内容是一个关于C语言操作符和结构体的教程摘要。首先提到了加法操作符`+`的使用,并给出了一种不使用临时变量交换两个数的方法。接着讨论了如何计算整数的二进制表示中1的个数,通过位操作符实现。然后介绍了逗号表达式和函数调用操作符`()`,以及结构体成员访问操作符`.`和`-&gt;`,用于访问和修改结构体内的成员变量。文章以讲解结构体的声明、初始化和通过指针访问结构体成员为重点,展示了如何直接和间接地操作结构体数据。
44 0
|
编译器 C语言 索引
S5——C操作符详解,你都知道吗? 下
讲解主要内容: 1. 各种操作符的介绍 2. 表达式求值 以下让我们开始正式重新认识和理解操作符吧!
|
存储
操作符详解上(非常详细)
操作符详解上(非常详细)
74 1
|
索引
操作符之关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用操作符,函数调用操作符,访问结构体成员操作符
操作符之关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用操作符,函数调用操作符,访问结构体成员操作符
|
C语言 索引
【C】操作符详解
今天给大家带来一篇关于C语言操作符的详细介绍,在C语言中操作符主要有以下几种: