概述
函数和二维数组 |
使用二维数组作为参数, 必须指定第二维的维数 – 元素的类型
- 表示arr为一个数组名,而数组的每一个元素也是一个数组, 由2个int组成
- 即arr的类型是指向由2个int组成的数组的指向
- 其中的括号必不可少,因为 int *arr[2]表示由2个指向int的指针组成的数组 – 函数参数不能为数组
- 另一种格式 –
int sum(int arr[][2], int n);
二者含义相同 - 两个原型都指出, arr是指针而非数组,这是至关重要的一点
int sum(int (*arr)[2], int n) { int res = 0; for(int i = 0; i < n; ++i) for(int j = 0; j < 2; ++j) res += arr[i][j]; return res; } int a[3][2] = { {1, 2}, {3, 4}, {5, 6} }; cout << sum(a, 3) << endl;
函数和C风格字符串 |
将字符串作为参数
- 使用 char* (指向char类型的指针) –
void show_str(const char* str);
- 也可使用
void show_str(const char str[]);
void show_str(const char* str) { while (*str) { cout << *str; ++str; } cout << endl; } char str[] = "hello world"; show_str(str);
- 使用 char* (指向char类型的指针) –
将字符串作为返回值
- 返回字符串的地址即可
#include <iostream> using namespace std; char* build_str(char ch, int n) { char* p_str = new char[1+n]; // 虽然p_str在函数结束时会被释放 p_str[n] = '