C++ 解引用与函数基础:内存地址、调用方法及声明


解引用是指通过指针访问其指向的内存位置。在C++中,指针是一种特殊的变量,它存储了内存地址。通过指针,你可以直接操作内存中的数据。

内存地址(Memory Address)

内存地址是指计算机内存中存储数据的位置。在C++中,可以使用取地址运算符&获取变量的内存地址。

示例:

#include <iostream>

int main() {
    int x = 10;
    std::cout << "Address of x: " << &x << std::endl;
    return 0;
}

解引用(Dereferencing)

解引用是指通过指针访问其指向的内存位置的值。在C++中,可以使用解引用运算符*来访问指针所指向的值。

示例:

#include <iostream>

int main() {
    int x = 10;
    int* ptr = &x; // 指向x的指针
    std::cout << "Value of x: " << *ptr << std::endl; // 解引用指针获取x的值
    return 0;
}

函数基础

在C++中,函数是一段执行特定任务的代码块。函数通常被定义、声明和调用。

函数声明:

函数声明告诉编译器有一个函数存在,但不提供函数的具体实现。函数声明通常包括函数的返回类型、名称和参数列表。

示例:

#include <iostream>

// 函数声明
int add(int a, int b);

int main() {
    int result = add(5, 3); // 调用函数
    std::cout << "Result: " << result << std::endl;
    return 0;
}

// 函数定义
int add(int a, int b) {
    return a + b;
}

在上面的例子中,add函数在main函数之前进行了声明,使得main函数可以调用它。

函数的声明告诉编译器关于函数的一些基本信息,使得在调用函数时编译器知道如何处理函数的返回值和参数。

通过结合指针、解引用和函数,你可以编写函数来修改指针所指向的值,从而间接地修改内存中的数据。

#include <iostream>

void modifyValue(int* ptr) {
    *ptr = 20; // 修改指针所指向的值
}

int main() {
    int x = 10;
    std::cout << "Before modification: " << x << std::endl;
    modifyValue(&x); // 通过指针修改x的值
    std::cout << "After modification: " << x << std::endl;
    return 0;
}

在这个示例中,modifyValue函数接受一个指向整数的指针,并通过解引用修改指针所指向的值,从而修改了main函数中的x的值。


原文链接:codingdict.net