码云上传代码团队协作
见网址:如何提交代码到gittee(码云)详细教程(小白专属) - 知乎
https://zhuanlan.zhihu.com/p/676496360
全局区域:
局部变量和全局变量在内存中占的位置不同,我们暂时定为两个区域:全局区和局部区
静态变量:
普通变量前面加static
数据存储位置与全局变量相近,属全局区
字符串常量:
“”双引号引起来的就叫字符串常量
数据存储位置与全局变量相近,属全局区
const修饰的变量:
const修饰的全局常量:属全局区
const修饰的局部常量:属局部区

内存运行后.........
栈区
栈区数据注意事项:不要返回局部变量的地址。
由编译器自动分配释放,存放函数的参数值,局部变量等。
例子
形参数据也会放在栈区开辟一个内存


堆区
由程序员分配释放,若程序员不释放,程序结束时由操作系统回收。
在C++中主要利用new在堆区开辟内存



原理

除非我关闭程序运行窗口,否则堆区数据不会释放
AI整理版:
C++ 内存管理笔记
1. 内存分区
C++程序运行时,内存通常分为以下几个区域:
1.1 全局区(静态区)
-
存储内容:
-
全局变量
-
静态变量(
static修饰的变量) -
字符串常量(如
"Hello, World!") -
const修饰的全局常量
-
-
特点:
-
生命周期为整个程序运行期间。
-
在程序编译时分配内存,程序结束时释放。
-
1.2 栈区
-
存储内容:
-
局部变量
-
函数参数
-
const修饰的局部常量
-
-
特点:
-
由编译器自动分配和释放。
-
生命周期为函数调用期间。
-
注意事项:不要返回局部变量的地址,因为函数调用结束后,栈区内存会被释放。
-
1.3 堆区
-
存储内容:
-
动态分配的内存(使用
new或malloc)
-
-
特点:
-
由程序员手动分配和释放(使用
delete或free)。 -
生命周期由程序员控制,直到显式释放或程序结束。
-
注意事项:忘记释放堆区内存会导致内存泄漏。
-
1.4 常量区
-
存储内容:
-
字符串常量(如
"Hello, World!")
-
-
特点:
-
数据不可修改。
-
生命周期为整个程序运行期间。
-
1.5 代码区
-
存储内容:
-
程序的二进制代码(函数体、类方法等)。
-
-
特点:
-
只读,不可修改。
-
2. 变量存储位置总结
| 变量类型 | 存储区域 | 生命周期 | 备注 |
|---|---|---|---|
| 全局变量 | 全局区 | 整个程序运行期间 | |
| 静态全局变量 | 全局区 | 整个程序运行期间 | 作用域为文件内 |
| 静态局部变量 | 全局区 | 整个程序运行期间 | 作用域为函数内 |
| 局部变量 | 栈区 | 函数调用期间 | |
const全局常量 | 全局区 | 整个程序运行期间 | |
const局部常量 | 栈区 | 函数调用期间 | |
动态分配的内存(new) | 堆区 | 直到显式释放 | 需要手动释放,否则内存泄漏 |
| 字符串常量 | 常量区 | 整个程序运行期间 | 不可修改 |
3. 代码示例
#include <iostream>
int globalVar = 10; // 全局变量,存储在全局区
void func() {
static int staticVar = 20; // 静态局部变量,存储在全局区
int localVar = 30; // 局部变量,存储在栈区
const int constLocalVar = 40; // 局部常量,存储在栈区
int* heapVar = new int(50); // 动态分配内存,存储在堆区
std::cout << "globalVar: " << globalVar << std::endl;
std::cout << "staticVar: " << staticVar << std::endl;
std::cout << "localVar: " << localVar << std::endl;
std::cout << "constLocalVar: " << constLocalVar << std::endl;
std::cout << "heapVar: " << *heapVar << std::endl;
delete heapVar; // 释放堆区内存
}
int main() {
func();
return 0;
}
4. 内存管理注意事项
-
不要返回局部变量的地址:
int* badFunc() { int localVar = 10; return &localVar; // 错误:局部变量地址在函数结束后无效 } -
避免内存泄漏:
-
使用
new分配的内存必须用delete释放。 -
使用
malloc分配的内存必须用free释放。
-
-
野指针问题:
-
释放内存后,将指针置为
nullptr,避免野指针。
-
码云团队协作笔记
1. 码云(Gitee)简介
-
码云是国内常用的代码托管平台,类似于GitHub。
-
支持Git版本控制,适合团队协作开发。
2. 团队协作流程
-
创建仓库:
-
在码云上创建一个新的仓库。
-
-
克隆仓库:
git clone https://gitee.com/your-username/your-repo.git -
创建分支:
-
每个开发者基于
main或master分支创建自己的开发分支
git checkout -b feature-branch -
-
提交代码:
-
在本地完成开发后,提交代码到本地仓库。
git add . git commit -m "描述你的更改" -
-
推送代码:
-
将本地分支推送到远程仓库。
git push origin feature-branch -
-
创建Pull Request(PR):
-
在码云上创建PR,请求将
feature-branch合并到main分支。
-
-
代码审查:
-
团队成员对PR进行审查,提出修改建议。
-
-
合并代码:
-
审查通过后,合并PR到
main分支。
-
3. 常用Git命令
-
查看状态:
git status -
查看提交历史:
git log -
拉取远程更新:
git pull -
切换分支:
git checkout branch-name -
删除分支:
git branch -d branch-name
9500

被折叠的 条评论
为什么被折叠?



