首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你能在C++中将指针声明为extern吗?

当然可以。在C++中,您可以将指针声明为extern,以便在其他文件中定义该指针。这样做的一个常见用途是在多个文件中共享全局变量。以下是一个简单的示例:

假设我们有一个名为main.cpp的文件,其中包含以下内容:

代码语言:cpp
复制
#include<iostream>

extern int *ptr;

int main() {
    std::cout << "Value of *ptr: " << *ptr<< std::endl;
    return 0;
}

在另一个名为other.cpp的文件中,我们定义了ptr的值:

代码语言:cpp
复制
int x = 10;
int *ptr = &x;

在这个例子中,我们在main.cpp中声明了一个名为ptr的指针,并使用extern关键字表示该指针将在其他文件中定义。然后,在other.cpp中,我们定义了ptr并将其指向一个整数变量x

要编译这个程序,您需要将这两个文件一起编译,例如:

代码语言:sh
复制
g++ main.cpp other.cpp -o main

编译完成后,您可以运行生成的可执行文件,它将输出ptr指向的值:

代码语言:sh
复制
./main

输出:

代码语言:txt
复制
Value of *ptr: 10

这就是如何在C++中将指针声明为extern

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

详解 C++ 11 中的智能指针

C/C++ 语言最为人所诟病的特性之一就是存在内存泄露问题,因此后来的大多数语言都提供了内置内存分配与释放功能,有的甚至干脆对语言的使用者屏蔽了内存指针这一概念。这里不置贬褒,手动分配内存与手动释放内存有利也有弊,自动分配内存和自动释放内存亦如此,这是两种不同的设计哲学。有人认为,内存如此重要的东西怎么能放心交给用户去管理呢?而另外一些人则认为,内存如此重要的东西怎么能放心交给系统去管理呢?在 C/C++ 语言中,内存泄露的问题一直困扰着广大的开发者,因此各类库和工具的一直在努力尝试各种方法去检测和避免内存泄露,如 boost,智能指针技术应运而生。

03
领券