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语言_框架

lesson4

1、static修饰局部变量,全局变量,函数
a(局部变量):static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,直到程序结束,生命周期才结束 。
注:作用域没变,只生命周期改变,局部变量类似转变为全局变量
b(全局变量)
(1)全部变量支持跨文件访问:extern int g_value;
(2)static修饰全部变量,代表该全部变量,只在本源文件中有效,只能在本源件中访问,不能在其他源文件中进行访问
(3)在本文件中加不加static均可以访问。
c(函数)
(1)同情况5和情况6,static修饰函数和修饰全局变量类似。
(2)函数访问支持跨文件的,需要extern声明;
(3)static修饰函数,该函数只在本文件内被调用和访问,不能跨文件访问
(4)同一个源文件,用不用static,均可以访问函数。

2、#define宏
(1)只做简单的文本替换 ,对单独使用的变量而言,字符串,变量中出现大的不做替换。
(2)好处:便于代码的维护性 ;方便阅读,能做到见名知意。
(3)但是不建议做简单运算时使用宏,因为在运算时进行文本替换,容易出错。并且宏是在运算前就进行文本替换,不做任何的计算。
(4)要想正确使用宏,给宏中的每个参数都带上括号。
eg:#define DOUBLE(x) ((x)+(x))

3、指针:
(1)什么是指针?
指针,就是地址。
指针变量是一个变量,只要是一个变量,需要在内存当中开辟空间,一旦开辟好空间,它这个空间里面就可以存放数据,而地址本身它就是数据,就好比门牌号,它就是数据。
数据可不可以被保存到变量里呢?答案是可以的。
指针变量是一个变量,指针变量里面放的是一个地址吗?是
(2)C语言中why要有指针:
因为数据都是在内存里存的,而内存是一大块内存,为了方便我们后续进行数据处理,内存被划分成一个一个以字节为单位的小格子,这样呢对我们而言,这样的一个一个内存当中的一个小格子,我们可以创一个自己的变量。
实际应用中,我们无非就是想在我们的内存当中。找到一个格子,读取里面的数据,找到这个格子之后,也可能把这个格子里的内容拷给另一个格子,也就是说,在整个数据访问当中,一定涉及到对内存的读操作和写操作。而我们读操作写操作的前提条件是你得先找到你要读什么,或者你要写什么,你得先找到它在哪儿。所以呢,我们必须得有一种方式来标识内存当中的这一个格子。当时啊,我们就有了一个叫做地址的概念,当然仅仅光标识还不够,我们还得通过这种标识来让我们快速的定位到内存当中的某一位置。
指针能够快速定位到内存的位置,解决一个叫做查找效率的问题
具有很强的指向意性,方便快速找到内存中对应的字节位置,以此提高查找效率
(3)初始化和赋值;
定义一个变量,本质是在内存中开辟空间,也就是说a=10,(第一件事情是把变量定义出来,也就是开辟空间。第二件事情,把这个对应的数据放到这个空间里)。这两步并在一块就是初始化的过程。
a=20;a=200;这是一个赋值的过程。a已经不是定义了,因为a已经存在了。
(4)左值,右值
b =a;把a的内容赋给b的空间里;
a=20;用的是a变量的空间
///
int* p = &a;开辟空间,p变量里放入一个变量a的地址
int* q = p;p的内容放入q中
总结:
a.指针变量也是变量,所以它也必须是有两个属性,一个叫做空间,一个叫做内容。
b.指针变量充当左值,其本质是用这个指针变量的空间属性,32位4字节,64位8字节;
指针变量充当右值,取这个变量的内容的,也就是对应变量的地址。
(5)指针的大小,在32位平台上,四个字节,在64位,八个字节。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 10:59:30  更:2022-05-05 11:03:34 
 
开发: 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年5日历 -2024/5/21 2:01:51-

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