参数传递的方式:值传递:创建参数的副本;引用传递:指向原始数据的指针;指针传递:需要手动解引用指针访问原始数据。
C++ 函数中引用与指针传递
在 C++ 中传递参数的方式有两种:值传递和引用传递。值传递是创建参数的副本,而引用传递是指向原始数据的指针。
值传递
立即学习“C++免费学习笔记(深入)”;
值传递是最简单的传递方式:
void foo(int value) { value++; // 修改的是 value 的副本 } int main() { int x = 5; foo(x); // 传递 x 的副本 cout << x << endl; // 仍为 5,因为它是一个副本 }
引用传递
引用传递使用引用符号 (&),它创建一个指向原始数据的别名:
void foo(int& value) { value++; // 修改的是原始数据 } int main() { int x = 5; foo(x); // 传递 x 的引用 cout << x << endl; // 6,因为原始数据已被修改 }
指针传递
指针传递与引用传递类似,但它需要手动解引用指针来访问原始数据:
void foo(int* value) { *value++; // 修改的是原始数据 } int main() { int x = 5; foo(&x); // 传递 x 的地址 cout << x << endl; // 6,因为原始数据已被修改 }
实战案例
以下是一个使用引用传递和指针传递的实际示例:
#include <iostream> using namespace std; // 通过引用传递,返回字符串长度 size_t strlen(const char* str) { return strlen(str); // 利用 C 库函数 } // 通过指针传递,返回字符串最后一个字符 char lastchar(const char* str) { return *str + strlen(str) - 1; // 访问原始字符串的最后一个字符 } int main() { string s = "Hello"; cout << "String length: " << strlen(s.c_str()) << endl; cout << "Last character: " << lastchar(s.c_str()) << endl; }
输出:
String length: 5 Last character: o
以上就是C++ 函数中引用与指针传递的学习资源推荐的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com