
在 C++ 入门中,引用、inline 和 nullptr 是三个基础且重要的概念,下面分别解释它们的用法和意义:
引用是已存在变量的别名,它与原变量共享同一块内存空间,修改引用会直接影响原变量。
& 符号声明,必须在定义时初始化,且不能再指向其他变量。int a = 10;
int& ref = a; // ref 是 a 的引用(别名)
ref = 20; // 修改 ref 等同于修改 a,此时 a = 20inline 是用于修饰函数的关键字,建议编译器在调用该函数时,直接将函数体代码“插入”到调用处,而非执行常规的函数调用(压栈、跳转等操作),从而提高程序运行效率。
inline int add(int a, int b) { // 声明为内联函数
return a + b;
}
int main() {
int sum = add(1, 2); // 编译器可能直接替换为 sum = 1 + 2
return 0;
}inline 是“建议”而非“命令”:编译器可能忽略该建议(例如函数体过大时)。inline(会导致代码膨胀)。nullptr 是专门表示“空指针”的关键字,用于替代 C 语言中的 NULL(NULL 本质是 (void*)0 或 0,可能引发歧义)。
#include <iostream>
void func(int x) { std::cout << "int: " << x << std::endl; }
void func(char* p) { std::cout << "char*: " << p << std::endl; }
int main() {
// NULL 会被当作 0 处理,调用 func(int)
func(NULL); // 输出:int: 0(可能不符合预期)
// nullptr 明确表示空指针,调用 func(char*)
func(nullptr); // 输出:char*: (空指针)
return 0;
}nullptr 的类型是 nullptr_t,仅能隐式转换为指针类型,避免 NULL 被当作整数的歧义。NULL 以避免类型歧义,更安全。这三个特性是 C++ 基础语法的重要部分,理解它们有助于写出更简洁、高效、安全的代码。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。