1.函数的参数以及局部变量
程序清单7.4; · 27f4614 · Kite/C和C++ - Gitee.com
2.函数和数组
程序清单7.5;函数参数是数组 · 233e36e · Kite/C和C++ - Gitee.com
在c++中,当且仅当用于函数头或函数原型中,int *arr 和int arr[ ]的含义相同,都意味着arr是一个int指针。
数组表示法:int arr[ ] ;
指针表示法:int *arr ;
当指针指向数组的第一个元素时,使用数组表示法;当指向一个独立的值时,使用指针表示法。
无论arr是一个指针还是数组名,都请记住下面两个恒等式;
arr[i] == *(arr + i);&arr[i] == arr + i;
指针(包括数组名)加1,是加上了一个与指针指向的类型的长度(字节为单位);
数组名与指针对应有好处吗?
1.将数组地址作为参数可以节省复制整个数组所需的时间和内存。
2.使用原始数据增加了破坏数据的风险。
程序清单7.6;对于7.5的进一步了解; · 9f987fe · Kite/C和C++ - Gitee.com
打印出来的地址值和数组的长度随系统而异;
为将数组类型和元素数量告诉数组处理函数,请通过两个不同的参数来传递它们,如同上面的代码示例;而不要试图使用方括号表示法来传递数组长度,如下是错误的;
int sum_arr(int arr[size]);