`
ackerman
  • 浏览: 73033 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c++显示传递数组时为什么要指定其长度?

阅读更多

#include <iostream>
const int SIZE = 5;
int sum_arr(int p[],int size);
int main()
{
        int sum;
        int arr[SIZE] = {1,2,3,4,5};
        std::cout << "sizeof (arr)=" << sizeof(arr) << ", address=" << arr <<std::endl;
        sum = sum_arr(arr,SIZE);
        std::cout << "sum of arr=" << sum <<std::endl;
        return 0;

}

int sum_arr(int p[], int size)
{
        int sum = 0;
        std::cout << "sizeof (p)=" << sizeof(p) << ", address=" << p <<std::endl;
        for (int i =0; i < size; i++)
                sum += p[i];
        return sum;
}

 输出如下:

 

ackerman@ubuntu:~/桌面/c++test$ ./a.out 
sizeof (arr)=20, address=0xbf9afa68
sizeof (p)=4, address=0xbf9afa68
sum of arr = 15
 
分享到:
评论

相关推荐

    python调用c++传递数组的实例

    # 实例化一个长度为2的整型数组 input = INPUT() # 为数组赋值(input这个数组是不支持迭代的) input[0] = 11 input[1] = 2 input[2] = 3 input[3] = 4 dll.teststring.restype = c_char_p # bytes(aaaa, encoding=...

    指针数组和数组指针的区别.doc

    我们在32位的系统中sizeof(char*)的长度是4,所以每加1也就是+4,实际上是*a[]内部三个位置的+1,所以*(b+1)的结果自然就是cde了,我们这时候可能会问,为什么输出是cde而不是c一个呢?答案是这样的,在c++中,输出字符指针...

    c++数据结构---二分查找

    长度在前,数组在后也行,要对应这里的原函数参数数组在作为参数传递给函数时,将自动退化成指针。这一点要切记!!!在C++中,如果要给一个函数传入一个数组,一般都是传入两个参数一个数组指针和一个数组大小

    C#访问C++动态分配的数组指针(实例讲解)

    项目中遇到C#调用C++算法库的情况,C++内部运算结果返回矩形坐标数组(事先长度未知且不可预计),下面方法适用于访问C++内部分配的任何结构体类型数组。当时想当然的用ref array[]传递参数,能计算能分配,但是在C#...

    C/C++语言二维数组的传参方法总结

    C/C++语言将二维数组作为参数传递容易使人迷惑且易出错,本文将常用的几种方法列出,以方便用时查阅。三种方法总结如下(GCC验证成功):  方法一:形参为二维数组并给定第二维长度  此方法是简单直观的方法,...

    新手学习C++入门资料

    为了避免这样的警告,C++允许声明一个无名形参,以告诉编译器存在该参数,且调用者需要为其传递一个实际参数,但是函数不会用到这个参数。下面给出使用了无名参数的C++函数代码: int fun(int x,int) //注意不同点...

    Java语言程序设计的课程设计项目——利用Java实现地球系动画完整实现实例(第3部分).pdf

    (3)Java 中的动态数组——其实为 Java 中的集合类 为什么要应用静态数组而不使用 Java 中的集合类(如 ArrayList 等)产生动态数组?主要 是考虑到效率和类型两方面的问题。 1) 效率: 要想保存和随机访问一系列...

    C#编程中使用ref和out关键字来传递数组对象的用法

    下面的代码将 numbers 数组的长度(为 5)赋给名为 lengthOfNumbers 的变量: int[] numbers = { 1, 2, 3, 4, 5 }; int lengthOfNumbers = numbers.Length; Array 类提供了许多其他有用的方法和属性,用于排序、...

    C 语言编程常见问题解答.chm

    6.5 怎样将字符串打印成指定长度? 6.6 怎样拷贝字符串的一部分? 6.7 怎样将数字转换为字符串? 6.8 怎样将字符串转换为数字? 6.9 怎样打印字符串的一部分? 6.10 怎样判判断两个字符串是否相同? 第...

    C++MFC教程

    MFC借助C++的优势为Windows开发开辟了一片新天地,同时也借助ApplicationWizzard使开发者摆脱离了那些每次都必写基本代码,借助ClassWizard和消息映射使开发者摆脱了定义消息处理时那种混乱和冗长的代码段。...

    C语言编程要点

    6.5. 怎样将字符串打印成指定长度? 99 6.6. 怎样拷贝字符串的一部分? 100 6.7. 怎样将数字转换为字符串? 101 6.8. 怎样将字符串转换为数字? 103 6.9. 怎样打印字符串的一部分? 104 6.10. 怎样判断两个字符串是否相同...

    你必须知道的495个C语言问题

    为什么这些问题如此频繁地出现? 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 5.17 说真的,真有...

    JNI文档资料源码_2020_01_28.zip

    【Android NDK 开发】JNI 方法解析 ( int 数组传递 | jintArray 类型 | 数组转换 | 获取数组长度 | 获取数组元素 | 指针遍历数组 | 数组返回值设置 ) 博客地址 : ...

    《你必须知道的495个C语言问题》

    为什么这些问题如此频繁地出现? 60 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 60 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 60 5.17 说真的...

    go特性之数组与切片的问题

    数组: 复制传递(不要按照c/c++的方式去...要特别注意的是,切片的引用传递指的是切片传递时,切片的array字段是引用传递的,len和cap字段依然是赋值传递。 写个伪代码: type Slice struct { Array []interface{}

    后端,面试,c++ ,找工作

    *数组做sizeof的参数不退化,传递给strlen就退化为指针了。* ## C中的malloc和C++中的new有什么区别 malloc和new有以下不同: (1)new、delete是操作符,可以重载,只能在C++中使用。 (2)malloc、free是...

    C语言FAQ 常见问题列表

    为什么这些问题如此经常地出现? o 6.12 我很困惑。我就是不能理解这些空指针一类的东西。 o 6.13 考虑到有关空指针的所有这些困惑, 难道把要求它们内部表达都必须为 0 不是更简单吗? o 6.14 说真的, 真有机器用...

    c/c++ 学习总结 初学者必备

    21、为什么数组名作为参数,会改变数组的内容,而其它类型如int却不会改变变量的值? 答: 当数组名作为参数时,传递的实际上是地址。而其他类型如int作为参数时,由于函数参数值实质上是实参的一份拷贝,被调函数内部对...

Global site tag (gtag.js) - Google Analytics