初识C语言(C语言整体知识介绍)(三)

简介: 初识C语言(C语言整体知识介绍)(三)

操作符🐣

算术操作符> + - * / % (取模)

/ 除号两边没有小数就是进行的整数除法,若想结果带有小数必须两个数中有一个有小数点

float c = 10 / 3.0; //int / double -> double 3.333333

printf(“%f\n”, c);

% 取模操作符两边必须是整数

int a = 10 % 3; //10/3…1 10除3余1

移位操作符 (移动的是二级制位)> >> <<

位操作符 (操作的也是二级制位)> & (与) ^(异或) |(或)

赋值操作符> = += -= *= /= &= ^= |= >>= <<=

a = a + 10; a += 10;//2

a -= 2; a = a - 2;

单目操作符 > ! 逻辑反操作

负值 
正值 

& 取地址

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

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

– 前置、后置–

++ 前置、后置++

间接访问操作符(解引用操作符) 

(类型) 强制类型转换

//C语言中,0就是假,非0就是真

//int a = 10;

//int b = !a; 10是真 ,!a就是假 就是0

//printf(“b=%d\n”, b);//打印0

sizeof

//printf(“%d\n”, sizeof(a));

//printf(“%d\n”, sizeof(int));

~

//00010101 二进制按位取反

//11101010

++

int a = 10;

int b = ++a;//前置++,先++,后使用

//a=a+1;b=a;

int b = a++;//后置++,先使用,后++

//b=a;a=a+1;

int a = 10;
• 1

//int b = --a;//前置–,先–,再使用

int b = a–;//后置–,先使用,再–

() 强制类型转换

int a = 3.14;

//int a = (int)3.14;//强制类型转换

关系操作符 > > >= < <=

!= 用于测试“不相等”

== 用于测试“相等”

逻辑操作符 > && 逻辑与 || 逻辑或

并且                          或者

条件操作符 > exp1 ? exp2 : exp3

int a = 3;<br />  int b = 5;<br />  int m = 0;<br />  if (a > b)<br />    m = a;<br />  else<br />    m = b;<br />  m = ((a > b) ? a : b);

逗号表达式 > exp1, exp2, exp3,…expN

下标引用、函数调用和结构成员 > [] () . ->

[]

int arr[10] = { 1,2,3,4,5 };

// 0 1 2 3 4

printf(“%d\n”, arr[4]);//[]就是下标引用操作符

//[] - arr 4

()

printf("hello");//()就是函数调用操作符
• 1

//()的操作数是函数名printf,第二个就是"hello"

常见关键字

:::success

auto break case char const continue default do double else enum

extern float for goto if int long register return short signed

sizeof static struct switch typedef union unsigned void volatile while

:::

auto 自动变量 > int main()

{

auto int a = 10; //一般都是省略掉的 本来就是用来修饰局部变量的

return 0;

}

总概volatile 是Linus中要讲的现在不管

typedef typedef unsigned int uint;
//觉得unsigned int写起来很复杂 就换个名字
int main()
{
unsigned int num1 = 0;
uint num2 = 0;
return 0;
}

register 寄存器关键字

int main(){

register int num = 10;

//寄存器变量是不能取地址的,为什呢?因为取地址是取内存的地址

// 如果这个num在程序中被多次运用我们就可以使用register

//register 起到一个建议的作用,建议讲num的值放在寄存器中,

//最终是由编译器决定的

return 0;

}

static - 静态的

  1. static可以修饰局部变量

:::success

static 修饰局部变量的时候,改变了局部变量的存储类型:

一个局部变量本来是存储在栈区的,被static修饰的局部变量是存储在静态区的

存储在静态区的变量出了它的作用域变量也不会销毁,所以生命周期比较长。但是作用域是不被改变的。

static修饰的局部变量和程序的生命周期一样长

:::

  1. static可以修饰全局变量

static 修饰全局变量时,改变了全局变量的链接属性

本来一个全局变量具有外部链接属性,但被static修饰后就变成了内部链接属性

这时被static修饰的全局变量只能在本源文件(.c)中使用,其他文件无法再使用


目录
相关文章
|
存储 C语言
初识C语言(C语言整体知识介绍)(四)
初识C语言(C语言整体知识介绍)(四)
59 0
初识C语言(C语言整体知识介绍)(四)
|
存储 编译器 C语言
初识C语言(C语言整体知识介绍)(二)
初识C语言(C语言整体知识介绍)(二)
143 0
|
Java 编译器 Linux
初识C语言(C语言整体知识介绍)(一)
初识C语言(C语言整体知识介绍)
101 0
|
19天前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
30 3
|
9天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
30 10
|
3天前
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。
|
8天前
|
机器学习/深度学习 C语言
【c语言】一篇文章搞懂函数递归
本文详细介绍了函数递归的概念、思想及其限制条件,并通过求阶乘、打印整数每一位和求斐波那契数等实例,展示了递归的应用。递归的核心在于将大问题分解为小问题,但需注意递归可能导致效率低下和栈溢出的问题。文章最后总结了递归的优缺点,提醒读者在实际编程中合理使用递归。
32 7
|
8天前
|
存储 编译器 程序员
【c语言】函数
本文介绍了C语言中函数的基本概念,包括库函数和自定义函数的定义、使用及示例。库函数如`printf`和`scanf`,通过包含相应的头文件即可使用。自定义函数需指定返回类型、函数名、形式参数等。文中还探讨了函数的调用、形参与实参的区别、return语句的用法、函数嵌套调用、链式访问以及static关键字对变量和函数的影响,强调了static如何改变变量的生命周期和作用域,以及函数的可见性。
22 4
|
13天前
|
存储 编译器 C语言
C语言函数的定义与函数的声明的区别
C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
|
19天前
|
C语言
c语言回顾-函数递归(上)
c语言回顾-函数递归(上)
29 2