C++语言学习指针和引用应用案例

简介: C++中的指针和引用用于高效操作内存。示例展示指针和引用的基本用法:指针`*p`存储变量`a`的地址,引用`&x`在函数调用中实现值交换而无需复制。此外,引用`update(&x)`可直接修改原变量,指针`p`在数组操作中用于遍历和访问不同部分。

指针和引用是C++中非常重要的两个概念,它们可以帮助我们更高效地操作内存。下面是一些关于指针和引用的应用案例:

  1. 指针的基本用法:
#include <iostream>
using namespace std;

int main() {
   
    int a = 10;
    int *p = &a; // 创建一个指向整型变量a的指针p
    cout << "a的值:" << a << endl;
    cout << "a的地址:" << &a << endl;
    cout << "p的值(即a的地址):" << p << endl;
    cout << "p指向的值(即a的值):" << *p << endl;
    return 0;
}
  1. 引用的基本用法:
#include <iostream>
using namespace std;

void swap(int &x, int &y) {
    // 使用引用作为参数
    int temp = x;
    x = y;
    y = temp;
}

int main() {
   
    int a = 10, b = 20;
    cout << "交换前:" << endl;
    cout << "a的值:" << a << endl;
    cout << "b的值:" << b << endl;
    swap(a, b); // 调用swap函数,传入引用a和b
    cout << "交换后:" << endl;
    cout << "a的值:" << a << endl;
    cout << "b的值:" << b << endl;
    return 0;
}
  1. 指针和引用的复合赋值:
#include <iostream>
using namespace std;

void update(int &x) {
    // 使用引用作为参数
    x += 5;
}

int main() {
   
    int a = 10;
    cout << "更新前:" << endl;
    cout << "a的值:" << a << endl;
    update(a); // 调用update函数,传入引用a
    cout << "更新后:" << endl;
    cout << "a的值:" << a << endl;
    return 0;
}
  1. 指针和引用的数组操作:
#include <iostream>
using namespace std;

void printArray(int *arr, int size) {
    // 使用指针作为参数
    for (int i = 0; i < size; i++) {
   
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main() {
   
    int arr[] = {
   1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "原数组:" << endl;
    printArray(arr, size);
    int *p = arr; // 创建一个指向整型数组arr的指针p
    cout << "指针p指向的数组:" << endl;
    printArray(p, size);
    p++; // 指针p向后移动一个元素
    cout << "指针p向后移动一个元素后的数组:" << endl;
    printArray(p, size);
    return 0;
}
目录
相关文章
|
1天前
|
C++
C++对C的改进和拓展\引用
C++对C的改进和拓展\引用
5 0
|
5天前
|
算法 Java 程序员
面向对象编程(OOP)通过对象组合构建软件,C语言虽是过程式语言,但可通过结构体、函数指针模拟OOP特性
【6月更文挑战第15天】面向对象编程(OOP)通过对象组合构建软件,C语言虽是过程式语言,但可通过结构体、函数指针模拟OOP特性。封装可使用结构体封装数据和方法,如模拟矩形对象。继承则通过结构体嵌套实现静态继承。多态可通过函数指针模拟,但C不支持虚函数表,实现复杂。C语言能体现OOP思想,但不如C++、Java等语言原生支持。
23 7
|
5天前
|
存储 编译器 程序员
【C++高阶】C++继承学习手册:全面解析继承的各个方面
【C++高阶】C++继承学习手册:全面解析继承的各个方面
11 1
|
5天前
|
存储 安全 编译器
【C++入门】—— C++入门 (中)_引用
【C++入门】—— C++入门 (中)_引用
15 5
|
6天前
|
程序员 C语言 C++
【C++语言】继承:类特性的扩展,重要的类复用!
【C++语言】继承:类特性的扩展,重要的类复用!
|
6天前
|
C++ 容器
【C++语言】String 类关键函数实现,手搓一个简单字符串类!
【C++语言】String 类关键函数实现,手搓一个简单字符串类!
|
6天前
|
C++ 容器 存储
【C++语言】想学STL,先细细拿捏string类,万字详解string类 (内附精美思维导图)
【C++语言】想学STL,先细细拿捏string类,万字详解string类 (内附精美思维导图)
|
6天前
|
编译器 C++ 容器
【C++语言】模板(内附精美思维导图)
【C++语言】模板(内附精美思维导图)
|
6天前
|
存储 C++ C语言
【C++语言】动态内存管理
【C++语言】动态内存管理