初识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语言整体知识介绍)(四)
69 0
初识C语言(C语言整体知识介绍)(四)
|
存储 编译器 C语言
初识C语言(C语言整体知识介绍)(二)
初识C语言(C语言整体知识介绍)(二)
160 0
|
Java 编译器 Linux
初识C语言(C语言整体知识介绍)(一)
初识C语言(C语言整体知识介绍)
113 0
|
11天前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
50 23
|
11天前
|
算法 C语言
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
43 15
|
11天前
|
C语言
【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】
本文介绍了通过编程实现打印3000以内的全部亲密数的任务。主要内容包括: 1. **任务描述**:实现函数打印3000以内的全部亲密数。 2. **相关知识**: - 循环控制和跳转语句(for、while循环,break、continue语句)的使用。 - 亲密数的概念及历史背景。 - 判断亲密数的方法:计算数A的因子和存于B,再计算B的因子和存于sum,最后比较sum与A是否相等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台对代码进行测试,预期输出如220和284是一组亲密数。 5. **通关代码**:提供了完整的C语言代码实现
50 24
|
7天前
|
存储 C语言
【C语言程序设计——函数】递归求斐波那契数列的前n项(头歌实践教学平台习题)【合集】
本关任务是编写递归函数求斐波那契数列的前n项。主要内容包括: 1. **递归的概念**:递归是一种函数直接或间接调用自身的编程技巧,通过“俄罗斯套娃”的方式解决问题。 2. **边界条件的确定**:边界条件是递归停止的条件,确保递归不会无限进行。例如,计算阶乘时,当n为0或1时返回1。 3. **循环控制与跳转语句**:介绍`for`、`while`循环及`break`、`continue`语句的使用方法。 编程要求是在右侧编辑器Begin--End之间补充代码,测试输入分别为3和5,预期输出为斐波那契数列的前几项。通关代码已给出,需确保正确实现递归逻辑并处理好边界条件,以避免栈溢出或结果
46 16
|
7天前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
19 3
|
7天前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
11 2
|
11天前
|
存储 编译器 C语言
【C语言程序设计——函数】回文数判定(头歌实践教学平台习题)【合集】
算术运算于 C 语言仿若精密 “齿轮组”,驱动着数值处理流程。编写函数求区间[100,500]中所有的回文数,要求每行打印10个数。根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码。如果操作数是浮点数,在 C 语言中是不允许直接进行。的结果是 -1,因为 -7 除以 3 商为 -2,余数为 -1;注意:每一个数据输出格式为 printf("%4d", i);的结果是 1,因为 7 除以 -3 商为 -2,余数为 1。取余运算要求两个操作数必须是整数类型,包括。开始你的任务吧,祝你成功!
41 1

热门文章

最新文章