当前位置: 首页 > wzjs >正文

中小学网站建设郑州seo管理

中小学网站建设,郑州seo管理,html购物网站源代码,建站网站都用不了的指针的高阶用法(C) 指针在C中是一个强大的工具,除了基础的指向变量和动态内存分配外,还有许多高阶用法可以提高代码的效率和灵活性。 函数指针 函数指针允许将函数作为参数传递或存储在数据结构中,常用于回调机制和…

指针的高阶用法(C++)

指针在C++中是一个强大的工具,除了基础的指向变量和动态内存分配外,还有许多高阶用法可以提高代码的效率和灵活性。

函数指针

函数指针允许将函数作为参数传递或存储在数据结构中,常用于回调机制和策略模式。
定义函数指针的语法:

// 定义一个指向函数的指针,该函数接受两个int参数并返回int
int (*funcPtr)(int, int);

使用示例:

int add(int a, int b) { return a + b; }
int subtract(int a, int b) { return a - b; }funcPtr = add; // 指向add函数
cout << funcPtr(3, 5); // 输出8funcPtr = subtract; // 指向subtract函数
cout << funcPtr(5, 3); // 输出2

指针与多态

通过基类指针调用派生类函数是实现运行时多态的核心机制。
示例:

class Base {
public:virtual void print() { cout << "Base" << endl; }
};class Derived : public Base {
public:void print() override { cout << "Derived" << endl; }
};Base* ptr = new Derived();
ptr->print(); // 输出"Derived",多态调用
delete ptr;

智能指针

智能指针(如std::unique_ptrstd::shared_ptr)自动管理内存,避免内存泄漏。

std::unique_ptr示例:

#include <memory>
std::unique_ptr<int> uptr(new int(10));
cout << *uptr; // 输出10
// 无需手动删除,超出作用域自动释放

std::shared_ptr示例:

std::shared_ptr<int> sptr1 = std::make_shared<int>(20);
std::shared_ptr<int> sptr2 = sptr1; // 共享所有权
cout << *sptr2; // 输出20

指针与数组的灵活操作

指针可以像迭代器一样遍历数组,支持指针算术运算。
示例:

int arr[] = {1, 2, 3, 4, 5};
int* p = arr; // 指向数组首元素
for (int i = 0; i < 5; ++i) {cout << *(p + i) << " "; // 输出1 2 3 4 5
}

指向指针的指针(双指针)

双指针常用于动态二维数组或修改指针本身。
动态二维数组示例:

int** matrix = new int*[3];
for (int i = 0; i < 3; ++i) {matrix[i] = new int[4]{i, i+1, i+2, i+3};
}
// 释放内存
for (int i = 0; i < 3; ++i) {delete[] matrix[i];
}
delete[] matrix;

指针与STL算法的结合

指针可以与STL算法一起使用,例如排序普通数组。
示例:

#include <algorithm>
int data[] = {5, 2, 9, 1, 5};
std::sort(data, data + 5); // 排序数组
for (int n : data) cout << n << " "; // 输出1 2 5 5 9

类型安全的指针转换

使用static_castdynamic_cast等操作符进行类型转换。
dynamic_cast示例(需多态类):

Base* b = new Derived();
Derived* d = dynamic_cast<Derived*>(b); // 安全向下转换
if (d) {d->print(); // 输出"Derived"
}
delete b;

这些高阶用法可以显著提升C++程序的灵活性和性能,但需谨慎处理内存和类型安全。

http://www.dtcms.com/wzjs/223638.html

相关文章:

  • 桥头网站仿做微信软文怎么写
  • 外贸移动商城网站开发宁波关键词排名优化
  • 官方网站的推广策划怎么做设计一个简单的网页
  • 北京疫情最新通知品牌网络seo方案外包
  • 深圳网站开发怎么样万网官网入口
  • 旅游网站的设计方案怎么做近期国家新闻
  • 平顶山高端网站建设短视频营销策划方案
  • 阿里云免费网站建设武汉企业网站推广
  • 响水做网站的公司seo搜索引擎优化费用
  • 番禺区网站优化营销案例分享
  • wordpress自动易语言下载优化大师app
  • 做ppt模板下载网站网站建设软件
  • wordpress下载seo站群优化技术
  • 建设一个本地网站免费个人主页网站
  • 东莞企业官方网站建设精准数据营销方案
  • 企业如何实现高端网站建设小米口碑营销案例
  • 大庆市网站建设公司大连网络推广
  • 外贸营销型网站建设公司google推广妙招
  • 中国公司名录大全优化师助理
  • 安徽网站建设天锐科技淘宝指数查询
  • 制作网页之前必须先建立的是seo营销方案
  • 静态网站可以申请域名吗小说榜单首页百度搜索风云榜
  • 开网站建设公司地推app
  • h5网站价格方案网站建设公司大型
  • 深圳专业网站建设平台中小企业网络营销现状
  • 弹幕网站怎么做it培训机构培训费用
  • 子网站建设工作室舆情监测软件
  • mac 中文wordpress长沙关键词优化费用
  • 网站首页的优化百度关键词排名工具
  • 武汉便宜做网站郑州seo线下培训