【day0403】C++ 数组形参的传递
2016-04-03 21:42
134 查看
# 数组是C/C++重要的一个知识点,C++的字符串又不同于c的字符数组(C风格字符串)
今天写点代码试试函数参数传递--数组形参
* 三种传递数组的写法
* 数组实参:数组名--指向数组首地址的一个指针
* 通过引用传递数组
* 二维(多维)数组的传递
Demo1:
今天写点代码试试函数参数传递--数组形参
* 三种传递数组的写法
* 数组实参:数组名--指向数组首地址的一个指针
* 通过引用传递数组
* 二维(多维)数组的传递
Demo1:
#include <iostream> using namespace std; /*数组形参*/ //传入数组首地址,还需传入数组长度 /*以下两个相同*/ //void print_1(const int x[], const size_t len); //void print_1(const int x[10], const size_t len); //长度10没有用 void print_1(const int *x, const size_t len) { cout << "传入数组首地址(指针):\n"; for (size_t i = 0; i < len; ++i){ cout << x[i] << ", "; } } //数组引用形参 void print_2(int (&x)[10]) //长度10必须写 { cout << "\n\n数组引用形参:\n"; for (size_t i = 0; i < 10; ++i){ cout << x[i] << ", "; } } //C++标准库的写法 //传入收地址和指向最后一个的下一个地址。 void print_3(int *bgn, int *end) { cout << "\n\nC++标准库的写法:\n"; while (bgn != end){ cout << *bgn++ << ", "; } } /// 二维数组形参 /// 参数:*x表示数组的第0行,每行有10个元素;一共有row_size行 void print_4(int (*x)[10], int row_size) { cout << "\n\n二维数组的形参:\n"; for (int i = 0; i != row_size; ++i){ for (int j = 0; j < 10; ++j){ cout << x[i][j] << ", "; } cout << endl; } } /// C风格字符数组,最后一个字符是NULL void print_ch(const char *arr) { cout << "\n\nC风格字符数组:\n"; while (*arr != NULL){ cout << *arr++; } } int main() { int arr[10] = {14,15,21,23,56,8,78,79,22,94}; int arr2[][10] = {{14,15,21,23,56,8,78,79,22,94}, {15,21,23,56,8,78,79,22,94,1}, {21,23,56,8,78,79,22,94,22,33} }; char *str = "Hello Love! Today is 0403.\n"; print_1(arr, 10); print_2(arr); print_3(arr, arr+10); print_4(arr2, 3); print_ch(str); return 0; }输出:
相关文章推荐
- C语言-二分查找(折半查找)算法
- C++11并发API总结
- c++中的string常用函数用法总结
- 杨老师:Visual C++ 中操纵 MS Word 123
- 浅谈C++多态性
- C++中的static关键字
- C++STL之ACM相关知识大全
- C语言-冒泡,选择排序
- 【c++程序】inline一般用法
- [C++]String类的理解
- [C++]--对象创建的两种方式
- c语言中的const的用法
- 【好】C++中lib 和 dll 的区别、生成以及使用详解
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- 怎样从一个DLL中导出一个C++类
- [C++]--调用系统时间
- C++命名规范
- C++命名规范
- C++作业2