初识C语言(三)(数组、操作符与关键字)

目录

10、数组

定义

注意事项

给数组输入一组值:

11、操作符

算术操作符:

除法

取模%

移位操作符(二进制)

位操作符(二进制)

赋值操作符

单目操作符

双目操作符:

单目操作符:

!:

sizeof:

区别strlen:

++:

前置++:++a

后置++:a++

(类型):

关系操作符

逻辑操作符

&&并且:

| | 或者:

条件操作符

逗号表达式

下标引用、函数调用和结构成员操作符

12、常见关键字

typedef

static

修饰局部变量

修饰全局变量

修饰函数

register寄存器

使用:

#define 定义常量和宏

定义常量:

定义宏:(有参数)


10、数组

定义

一组类型相同的数

注意事项

1、下标从0开始,不是从1开始。

例如int arr[10]={1,2,3,4,5,6,7,8,9,10};输出为arr[1]=2;

2、中途可任意改值(arr[1]=20,输出为arr[1]=20)

给数组输入一组值:

25a1ac57baa84601a6c321c96ffefad2.png

b71e923394f64f05a941eef37e82718a.png

11、操作符

算术操作符:

d38fc23d3c9642efb511abf133795abb.png

除法

/除号两端都是整数,则执行整数除法。

若两端有一个数是小数,则执行小数除法。

a328a390f3bd414d9a5974ef4a213424.png

de2454eca2e048748ba1fec5d14d8a08.png

编译器默认7.0为double类型,7.0f 为float类型

取模%

两边操作符必须是整数

移位操作符(二进制)

6a6f6a4af503417d94656f47d2c9f459.png

移动的是二进制的位

位操作符(二进制)

633c0d2b090047f48ff61f6256dbe16a.png

赋值操作符

384170f3e0e4410eb153b3d5e939ec93.png

例如+=:

a=a+3可以写成a+=3

单目操作符

0ad6e164ee2d4f60af59b2e47577c15b.png

双目操作符:

有两个操作数的操作符,例如3 + 2, 5 / 2

单目操作符:

只有一个 操作数的操作符

977c911e68f74bd89d4fa4b3d43db3d3.png

!:

真变假,假变真

(C语言中0表示假,非0表示真)

1055d807bfa74750a85a9e90ed23022e.png

sizeof:

可以计算类型的字节大小(sizeof(int)、sizeof(a))若后方是变量名a,可以省略括号

区别strlen:

求字符串长度

++:

分为前置++和后置++

前置++:++a

前+1,后使用

a=a+1,b=a

后置++:a++

先使用,后+1

b=a,a++

(类型):

不建议使用强制类型转换

db1d0dbea5a442248929a0d7c5f81fa4.png

关系操作符

7ad90498406d40d28eefb5c773ca50f9.png

逻辑操作符

2523368ef0bc41fbb4fbbda522f51465.png

&&并且:

a && b,有一假,全为假

| | 或者:

a | | b,有一真,全为真

条件操作符

3c8d3c62c8f54b6c83dbadcd8ff6487f.png

若1为真,计算2

若1为假,计算3

92fac8a454e5481aa76144b988ae511e.png

逗号表达式

c4d16331e39e43eba5adbaa632416d61.png

从左向右其次计算,整个表达式结果是最后一个表达式结果

53e6f3a93dd14738aef2d30c57d8a5f3.png

下标引用、函数调用和结构成员操作符

9023c8aa4bf3469e9b189c5b34ddeff9.png

12、常见关键字

031598ea590f46219e5f7ab014702698.png

1、关键字是预设好的,不能自己创建

2、变量的名字不能和关键字相同

typedef

为类型重命名,简化了复杂类型名称。

一个类型可以有多种命名方式

e98ab9d4f3074d1892a43dd15d5ca215.png

static

修饰局部变量

使得局部变量除了作用域并不销毁,空间不会回收,下一次进入函数,仍然使用上一次的值进行运算

本质上static修饰局部变量使得变量的存储位置发生了变化,本来局部变量放在内存的栈区,被static修饰后,放在内存静态区(内存分为栈区、堆区、静态区)使得变量生命周期变长了,作用域没有发生变化。

即有局部变量的作用域和全局变量的生命周期

d05bbdef4ab344a483c2a62f70117813.png

bb76c79bdd1f48e28bff29a0c3226863.png

修饰全局变量

全局变量具有外部链接属性:

编译器在编译时,每个.c文件单独编译,在一个.c中定义的变量,不能在第二个.c文件中直接引用,除非在主函数前加上extern int a;说明其来自外部文件

若static修饰全局变量,则使得全局变量只能在自己所在的源文件内部使用,其他源文件无法使用,失去了外部链接属性,变成了内部连接属性

修饰函数

与全局变量用法相同

register寄存器

电脑上有存储设备:呈金字塔结构,越往上速度越快、造价越高、价格越贵、空间越少

寄存器 4字节(几十个寄存器)匹配CPU读取数据

高速缓存 128M

内存 8G/16G/32G

硬盘 500G/1T

网盘 1T/2T(免费)

使用:

若a会被频繁大量使用,可以在定义前加上register,例如register int a=10;

即register建议将a放在寄存器中,但是否真的放入寄存器中是由编译器决定的

现在的编译器已经很聪明了,即使没有加上register关键字,也会根据实际情况,将数据放在寄存器中来提升效率

#define 定义常量和宏

定义常量:

#define M 100

#define STR "abc"

定义宏:(有参数)

#define MAX(x,y)(x>y?x:y)

                     宏          宏体 宏的声明部分

和函数相似

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值