【手撕C语言 第二集】初识C语言

​​在这里插入图片描述

一、变量的作用域和生命周期

作用域:一个变量在哪里可以使用它,哪里就是它的作用域。
局部变量的作用域:变量所在的局部范围
全局变量的作用域:整个工程

不管整个工程里面有多少源文件,都可以使用全局变量。这样的弊端是不安全。
比如:
在add.c文件中定义全局变量,int g_val=2022
在test.c文件中想要使用add.c文件中定义的全局变量
extern int g_val; //需要声明外部符号
int main(){
printf(“%d\n”,g_val);
return 0;
}

生命周期:
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期:整个程序的生命周期

二、常量

分类

(1)字面常量

100 整形字面值
‘w’ 字符字面值
3.14 浮点型字面值
“abcd” 字符串常量

(2)const修饰的常变量

const int num=9;
这里的num是const修饰的常变量。const修饰的常变量在C语言中只是在语法层面上限制了变量num不能被修改,但是num本质上还是一个变量,所以叫常变量。

const int n=10;
int arr[n]=0;
以上这样的写法是不对的,因为n虽然被const修饰,具有了常属性,不能被修改,但本质上还是变量,所以不能用来指定数组的大小。

int n=9;
int arr[n];
以上代码是在支持C99编译器上可编译的。C99中,引入了变长数组的概念,变长数组的大小是可以使用变量来指定的,但是数据不能初始化。

在VS2019中是不支持C99的变长数组的,所以没法验证。
在Linux中的gcc编译器是支持变长数组的。

(3)#define定义的标识符常量

#define定义的标识符常量,可以写在{}中,不能被修改,可以用来自指定数组的大小。

#define Max 100
printf(“%d\n”,MAX);

(4)枚举常量

枚举 enum
性别:男、女、秘密
三原色:RED GREEN BLUE
enum Sex{
male,
female,
secret
};
enum Sex是声明的一个表示性别的枚举类型
下面三个符号是这个枚举类型的未来的可能取值

enum Sex s=female;
用这个枚举类型创建的变量s,用枚举类型的可能取值进行赋值

priintf(“%d\n”,female);
注意:枚举常量的默认是从0开始,依次向下递增1的
如果想要指定枚举常量的某个值,可以自己在枚举类型的可能取值中进行赋值
enum Sex{
female=11,
male,
secret
};

三、字符串

"hello bit.\n"

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符
串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串
内容。

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
   
char arr1[] = "bit";
char arr2[] = {
   'b', 'i', 't'};
char arr3[] = {
   'b', 'i', 't''\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}

在这里插入图片描述
在这里插入图片描述

strlen是一个库函数,专门求字符串长度,头文件是string.h
strlen从起始位置开始数,统计\0字符前出现的字符个数

四、转义字符

转义字符顾名思义就是转变意思

转义字符 <

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值