多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
################指向数组的指针############## 数组名是一个指向数组中第一个元素的常量指针 使用数组名作为常量指针是合法的,反之亦然。因此,*(balance + 4) 是一种访问 balance[4] 数据的合法方式。 一旦您把第一个元素的地址存储在 p 中,您就可以使用 *p、*(p+1)、*(p+2) 等来访问数组元素。下面的实例演示了上面讨论到的这些概念: #include <iostream> using namespace std; #include <iomanip> using std::setw; int main(){ int arr[5] = {11,32,43,54,25}; int *p; p = arr; for(int i=0;i<5;i++){ cout << "*(p+" << i << ")=" << *(p+i) << endl; } return 0; } #################数组作为形参#################### #include <iostream> using namespace std; #include <iomanip> using std::setw; //double getAverage(int arr[],int); //double getAverage(int *p,int); double getAverage(int arr[5],int); int main(){ int numArr[] = {33,44,55,22,11}; int avg; avg = getAverage(numArr,5); cout << avg; } double getAverage(int arr[],int size){ int sum = 0; for(int i=0;i<size;i++){ sum += arr[i]; } return double(sum/size); } ################函数返回数组################ 注意点:C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。 否则,编译时报错如下; arr.cpp:85:9: warning: address of local variable 'r' returned [-Wreturn-local-addr] #include <ctime> #include <cstdlib> #include <iostream> using namespace std; #include <iomanip> using std::setw; int * getRandom(){ static int r[10];//local变量必须指定大小 srand(unsigned (time(NULL))); for(int i=0;i<10;i++){ r[i] = rand(); cout << r[i] << endl; } return r; } int main(){ int * p; p = getRandom(); for(int j=0;j<10;j++){ cout << *(p+j) << endl; } return 0; }