IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言基础的一些细枝末节 -> 正文阅读

[C++知识库]C语言基础的一些细枝末节

文章目录

一、必须理解的几个概念

1.变量的作用域和生命周期

(1)作用域:

作用域(scope)概念:一段程序代码中所用到的名字并不是总是有效的,限定这个名字的可用性的代码范围就是这个名字的作用域。

①局部变量的作用域是变量所在的局部范围。
②全局变量的作用域是整个工程
③局部变量与全局变量重名时,局部变量优先
举个例子:

#include<stdio.h>
int a = 10;
int Add(int z, int b)
{
	int a = 100;
	return a + b;
}
int main()
{
	int a = 3;
	int b = 4;
	printf("%d", Add(a, b));
}

代码结果如下:在这里插入图片描述
可以看到尽管变量a有三次重复,优先选取局部,即在Add函数里面定义的变量a。
再举个例子:

#include<stdio.h>
int a = 10;
void test()
{
	int a = 3;
	a++;
}
int main()
{
	test();
	printf("%d", a);
}

在这里插入图片描述
在test函数里面优先使用局部变量a,出了test函数变量销毁,因此在main函数里头a还是全局变量的a,即a=10。

(2)生命周期

生命周期的概念:变量的生命周期指的是变量从创建到销毁的一个时间段。

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

二、转义字符

(1)
转义字符(Escape Character)是指在ASCII码和Unicode等字符集中的无法被键盘录入的字符、被当作特殊用途而需要转换回它原来的意义的字符。

ASCII编码中的转义字符对应意义如下:
在这里插入图片描述
比如下面这道笔试题:
请回答该段代码输出什么:
在这里插入图片描述
输出结果如下:
在这里插入图片描述
其中的\t,\62为转义字符,在字符串中只占据一个字节。

三、常见的关键字

在这里插入图片描述

(1)关键字 typedef

typedef 顾名思义,是用来重命名类型。 例子如下:

在这里插入图片描述

(2)关键字static

static用来修饰变量和函数:
①修饰局部变量-称为静态局部变量
②修饰全局变量-成为静态全局变量
③修饰函数-成为静态函数

①修饰局部变量

例子:分析下面两段代码
代码一:

#include <stdio.h>
void test()
{
	int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}

运行结果如下:
在这里插入图片描述
可以看到由于test函数中的变量i出了函数作用域生命周期结束,自动销毁。
第二段代码:

#include <stdio.h>
void test()
{
	//static修饰局部变量
	static int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
    int i=0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}

运行结果如下:
在这里插入图片描述
可以看出static改变了test函数中的i变量的生命周期,i即使出了函数作用域依旧存在,直到程序结束。(static将栈区的变量i放到了静态区中)

②static修饰全局变量

修饰前:
在这里插入图片描述
(其中使用外部源文件的全局变量需用extern声明)
用static修饰后:
在这里插入图片描述
即全局变量用static修饰后,变量只能在本源文件内使用,不能在其他源文件内使用。

③修饰函数:

修饰前:
在这里插入图片描述
(使用外部源文件的函数不需要用extern声明)
修饰后:在这里插入图片描述
可以看到static修饰函数与修饰全局变量的效果如出一辙,事函数只能在本源文件内使用,不能在其他源文件内使用。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:08:07  更:2021-11-29 16:10:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:42:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码