7-C++的编程模块
发布日期:2025-06-18 15:59:19
浏览次数:4
分类:精选文章
本文共 2115 字,大约阅读时间需要 7 分钟。
C++ 编程模块
数组与指针
在 C++ 中,数组和指针概念密切相关。以下几点需要注意:
数组与指针的等价性:
在函数头或原型参数中,int arr[] 等价于 int *arr。这意味着数组名可以被视为指针,且数组名解释为第一个元素的地址。 数组元素访问:
arr[i] 等价于 *(arr + i),这表明数组是按值访问的。 数组地址与指针:
&arr[i] 等价于 arr + i。当以数组形式传递或以指针形式传递时,可以节省复制和拷贝的时间及空间开销。 优缺点对比:
- 优点:节省时间和空间开销。
- 缺点:原始数据易于被破坏。
数组大小传递:
为了明确传递数组的大小,建议使用两个参数:void filer(int arr[], int size) 比 void file(int arr[size]) 更优。 const 与指针
const 关键字在指针中有两种主要用法:
指针指向常量:
当指针指向一个常量时,防止该指针修改所指向的值。例如:const int age = 30; const int * pt = &age;
此时,pt 可以指向 age,但不能修改 age 的值。
指针本身声明为常量:
指针声明为const 时,防止指针指向的值发生变化。例如: int sloth = 3; const int * ps = &sloth; // 指针指向常量 int * const finger = &sloth; // 常数指针,指向整数
这两种声明方式都能避免不经意修改数据所引发的错误。
function 与二维数组
二维数组的声明与使用
二维数组的声明方式有多种:
使用大小和元素类型:
int (*arr)[4]; // 可变大小,指向数组的指针 int arr[4][3]; // 固定大小的二维数组
或者使用隐含大小:
int data[3][4] = { {1, 2, 3, 4}, {9, 8, 7, 6}, {2, 4, 6, 8} }; 二维数组的访问:
arr[r][c]访问第r行第c列的元素。* (arr + r) + c或*(arr[r][c])也可实现相同效果。
function 与 c 风格字符串
C++ 中,字符串的名字表示字符串的第一个字符的地址。例如:
字符串操作:
char * ch = "helloworld"; *ch = 'w'; // 修改字符串中的字符
使用 new 和 delete 管理动态内存:
char * pstr = new char[5]; delete[] pstr;
注意:在 C++11 以后,auto 和 unique_ptr 是更推荐的选择。
字符串输入输出:
char str[20]; cin >> str; cout << str << endl;
function 与结构
当结构较小时,按值传递较为合理;当结构较大时,按指针或引用传递更为合理。例如:
按值传递:
struct Point { int x, y; }; Point read_point() { /* 读取输入 */ } Point p = read_point(); 按指针传递:
void show(const Point * pxy) { cout << pxy->x << ", " << pxy->y << endl; } Point p; show(&p); string 与 array
string 定义
#includestring list[5]; // 读取输入: cin >> list[i];
array 定义
#includeconst seasons = 4; array names = {"spring", "summer", "fall", "winter"}; array * pa; // 读取输入: cin >> (*pa)[i]; // 输出: cout << (*pa)[i] << endl;
递归
C++ 不允许 main() 调用自己。递归函数需要谨慎处理栈深度。
示例
int factorial(int n) { if (n == 0) return 1; return n * factorial(n - 1); } function 指针
获取函数地址
double pam(int x); double (*pf)(int) = pam; void estimate(int line, double (*pf)(int)) { double x = (*pf)(5); // 或者: double x = pf(5); } 以上内容涵盖了 C++ 中的核心概念,理解这些内容是掌握语言的关键。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2026年06月04日 10时25分31秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
phpcms V9 自定义添加 全局变量{DIY_PATH}方法
2023-02-28
Redis五种核心数据结构的基本使用与应用场景
2023-02-28
PHPCMS多文件上传和上传数量限制
2023-02-28
phpEnv的PHP集成环境
2023-02-28
PHPExcel一些基本设置总结
2023-02-28
PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/c...
2023-02-28
PHPMailer发送邮件
2023-02-28
phpmailer发送邮件,可以带附件
2023-02-28
phpmyadmin 安装
2023-02-28
phpmyadmin数据库建表及插入
2023-02-28
phprpc简单使用
2023-02-28
phpstorm中Xdebug的使用
2023-02-28
phpstorm中使用svn版本控制器
2023-02-28
phpstorm配置php脚本执行
2023-02-28
phpStudy安装教程
2023-02-28
phpunit
2023-02-28
phpWhois 项目推荐
2023-02-28
phpwind部署问题
2023-02-28
PHP__call __callStatic
2023-02-28
php一句话图片运行,【后端开发】php一句话图片木马怎么解析
2023-02-28