开发者社区> 重庆八怪> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数组作为形参

简介: 在函数传递值的过程中,一般都是值传递但是数组确实传递的指针,这样主要用于避免过多数据复制占用过多的内存空间。 我们在设置函数的时候可以使用 int puta(const int geta[],int s_a) 来避免原始数组受到修改,如此的话修改会报错input.
+关注继续查看
在函数传递值的过程中,一般都是值传递但是数组确实传递的指针,这样主要用于避免过多数据复制占用过多的内存空间。
我们在设置函数的时候可以使用
 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;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为参数,泛型函数
 1、指针数组    数组里面的每个元素都是指针。    指针数组的案例如下:    易犯错误: 2、数组指针   归根结底还是指针,只是取*的时候能够取出一整个数组出来。 数组指针:(一个指针指向了数组,一般和二维数组搭配使用)。 下面的(p+1)表示的是加过20个字符。   3、函数指针: 在gcc编译
902 0
历史的一幕拉开了!首个Mac勒索软件现身
本文讲的是历史的一幕拉开了!首个Mac勒索软件现身,近日,研究人员发现了首个针对mac系统的勒索软件MacSpy出现了,并且提供免费版与付费版,另外MacSpy可以通过“勒索即服务”模式获取。
1431 0
C#中的数组
C# 数组 Array foreach 索引 null 地址:http://www.cnblogs.com/txw1958/archive/2013/01/11/csharp-array.html 数组概述 数组是一种数据结构,它包含若干相同类型的变量。
761 0
H264的RTP负载打包的数据包格式,分组,分片
H264的RTP负载打包的数据包格式,分组,分片   1.    RTP数据包格式 RTP报文头格式(见RFC3550 Page12):     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 12 3 4 5 6 7 8 9 0 1   +-+-+-+...
906 0
C#数组
C#中定义一个数组的方法一般为: Data Type []  Array=new DataType [Size]; 其中Data Type可以是基本数据类型和对象类型数据,Size是数组元素的个数.
462 0
育儿品牌“亲宝宝”获数亿元C轮融资,好未来领投,顺为、复星跟投
经过五年的积累,亲宝宝成长记录空间累计上传照片达30亿张, 累计上传视频超16亿分钟,已经成为国内最大的私密亲子空间。
121 0
Netty-SocketIO:最好用的Java版即时消息推送(2)
Netty-SocketIO:最好用的Java版即时消息推送
0 0
C/C++ - 数组篇
C/C++ - 数组篇
0 0
+关注
重庆八怪
10年ORACLE/MYSQL DBA,有一定C/C++基础
文章
问答
文章排行榜
最热
最新
相关电子书
更多
函数对象
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载