关闭

三种方法检测数组边界

1006人阅读 评论(0) 收藏 举报
分类:

c++primer里的一道题

int *a;

int a[];

int a[10];

三种形参都一样,都被认为是int *a。

能检测边界的只有这种 int(&a)[10]。


#include<iostream>
using std::cin;
using std::cout;
using std::endl;

int Sum1(int *begin,int *end)
{
	int sum=0;
	while(begin!=end)
	{
		sum+=*begin;
		++begin; 
	}
	return sum;
}

int Sum2(int a[],size_t l)
{
	int sum;
	for(size_t i=0;i!=l;i++)
	{
		sum+=*a;
		a++;
	}
	return sum;
 } 
 
 int Sum3(int (&a)[10],int i)//这种形参传递了数组的大小 
 {
 	int sum=0;
 	int index=0;
 	while(a[index]<=i)
 	{
	 	cout<<"sum="<<sum<<endl;
		cout<<"index"<<index<<' '<<"a[index]"<<a[index]<<endl; 
 		sum+=a[index];
 		cout<<"sum="<<sum<<endl;
 		++index;
 		if(index==10)
 		{
 			break;
		 }
 		cout<<"****"<<endl;
		
 		
	 }
	 return sum;
 }


int main ()
{
	const size_t length=10;
	int a[length]={1,2,3,4,5,6,7,8,9,10};
	
	cout<<Sum1(a,a+length)<<endl;
	cout<<Sum2(a,length)<<endl;
	cout<<Sum3(a,10)<<endl; 
	
	return 0;
}


0
0
查看评论

小知识数组超出边界

import java.util.Scanner;public class Test2{ public static void main(String []args){ //Scanner in =new Scanner(System.in); int[] arrs=n...
  • young_so_nice
  • young_so_nice
  • 2015-09-10 08:37
  • 374

什么才是正确的javascript数组检测方式

什么才是正确的javascript数组检测方式 前面的话   对于确定某个对象是不是数组,一直是数组的一个经典问题。本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式    typeof   首先,使用最常用的类型检测工具——typ...
  • zhihui1017
  • zhihui1017
  • 2016-07-18 22:34
  • 351

三种图像处理的基本边缘检测法

三种最基本的边缘检测法 1:直接对图像平滑滤波,之后利用sobel算子计算图像梯度,进行阈值处理,得到图像边缘图。这是最基本的边缘检测方法。效果当然一般般而且容易产生边缘断线。 2:Marr-Hildreth检测法,Marr和Hildreth两位前辈证明, 1)灰度变化和图像尺度无关(不管图像是...
  • zhang_bei_qing
  • zhang_bei_qing
  • 2017-05-16 17:10
  • 802

53_数组_数组的三种初始化方式

初始化默认初始化 组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。 静态初始化 除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。 int[] a = {1,2,3}; ...
  • qq_21122243
  • qq_21122243
  • 2017-06-09 15:27
  • 883

数组边界

解决问题: 数组下标超出边界的测试。 分析: 创建一个内含4个元素的的数组,错误地使用-1~6的下标。 代码如下: #include #define SIZE 4 int main(void) { int value1 = 44; int arr[SIZE]; ...
  • aixiaoql
  • aixiaoql
  • 2017-01-18 19:52
  • 243

数组边界问题

先来看一段程序吧,在程序中讲问题#include <stdio.h>int prime(int x); int main() { int n; int a[301];//设置数组长度是301 int b[300]; int i = 0; int j...
  • tr_ainiyangyang
  • tr_ainiyangyang
  • 2017-05-09 22:48
  • 419

java数组中的三种排序方法中的冒泡排序方法

我记得我大学学java的时候,怎么就是搞不明白这
  • xuejavaweb
  • xuejavaweb
  • 2014-09-15 15:39
  • 596

原生如何检测变量是否是一个数组的几种方法

首先先总计一下检测js类型的常用的方法如:typeof 这个方法只能检测js基本类型如:undefined/null/number/boolean/object,而要检测Array类型则需要以下几种方法:1、instanceof instanceof 方法主要是检测 变量的constructor ...
  • oliverpeng1521314
  • oliverpeng1521314
  • 2017-04-29 17:46
  • 977

C语言中的边界计算与不对称边界(一)

C语言中的边界计算与不对称边界(一)
  • kerry0071
  • kerry0071
  • 2014-06-30 21:55
  • 1422

用五种不同的方法遍历数组

用五种不同的方法遍历数组
  • u012221917
  • u012221917
  • 2014-03-09 21:59
  • 1964
    个人资料
    • 访问:7936次
    • 积分:346
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章分类