ITPub博客

首页 > 应用开发 > IT综合 > 数组作为形参

数组作为形参

原创 IT综合 作者:gaopengtttt 时间:2016-05-24 18:43:51 0 删除 编辑
在函数传递值的过程中,一般都是值传递但是数组确实传递的指针,这样主要用于避免过多数据复制占用过多的内存空间。
我们在设置函数的时候可以使用
 int puta(const int geta[],int s_a) 来避免原始数组受到修改,
如此的话修改会报错
input.cpp: In function ‘int puta(const int*, int)’:
input.cpp:49:11: error: assignment of read-only location ‘*(geta + ((sizetype)(((long unsigned int)i) * 4ul)))’
   geta[i] = ipu;
下面是一个相关的例子
这里使用函数传入值,同时检测输入的值是否合法


8 #include
  9 using namespace std;
 10 
 11 int puta(int *geta,int s_a);
 12 
 13 int main(void)
 14 {
 15     int geta[10];
 16 //  puta(geta,sizeof(geta)/sizeof(int));
 17     if(!(puta(geta,sizeof(geta)/sizeof(int))))
 18     {
 19         for(int i = 0;i<sizeof(geta) sizeof(int);i++)  20         {
 21             cout<<geta[i]<<endl;
 22         }
 23     }
 24     else
 25     {
 26         cout<<"error input!\n";
 27     }
 28 
 29 }
 30 
 31 int puta(int geta[],int s_a)
 32 {
 33     int i;
 34     int ipu;
 35     for(i=0;i<s_a;i++)
 36     {
 37         if(!(cin>>ipu)) //cin>>check ipu data is adjust return true else return flase
 38         {
 39             cin.clear(); //clear cin flag
 40             while(cin.get() !='\n') //clear stdout buffer
 41                 continue;
 42             cout<<"error input!\n";
 43             return 1;
 44         }
 45         else if (ipu<0)
 46         {
 47             return 1;
 48         }
 49         geta[i] = ipu;
 50     }
 51     return 0;
 52 }    
</s_a;i++)
</geta[i]<<endl;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7728585/viewspace-2106201/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
wxh gp_22389860 公众号 MySQL学习 书籍 深入理解MySQL主从原理

注册时间:2021-06-07

  • 博文量
    868
  • 访问量
    3495605