社区
C++ 语言
帖子详情
数组名称作为函数的形式参数
thulongkang
2012-07-23 05:32:01
情况(1):
我定义了一个函数:void func(int *A[]){....}
其中函数体内有一句话:int size=sizeof(A),我想问的是,这样得出来的size是不是A指针数组里面的实际的元素个数?
情况(2):
我同样定义了一个函数,void func(int *arr){....},但是,我传入的实参是一个整型数组,那么,仍然是那句话int size=sizeof(arr),我能得出传入的实参数组的元素个数是多少么?
...全文
289
12
打赏
收藏
数组名称作为函数的形式参数
情况(1): 我定义了一个函数:void func(int *A[]){....} 其中函数体内有一句话:int size=sizeof(A),我想问的是,这样得出来的size是不是A指针数组里面的实际的元素个数? 情况(2): 我同样定义了一个函数,void func(int *arr){....},但是,我传入的实参是一个整型数组,那么,仍然是那句话int size=sizeof(arr),我能得出传入的实参数组的元素个数是多少么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OldCloudM
2012-07-24
打赏
举报
回复
情况1:sizeof(A)的值为指针所占的空间,32位下为4。
thulongkang
2012-07-24
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
字体颜色A旁边 插入源码
[/Quote]原来这么简单
自信男孩
2012-07-24
打赏
举报
回复
传入的数组名参数是一个地址,编译器在解析时是作为一个首地址处理的。
fzamygsd
2012-07-23
打赏
举报
回复
数组名是一个抽象的概念,直接 sizeof()的时候,它代表这个数组类型,得到的是整个数组大小,
以参数传递的时候,它会退化成指针,存放数组首地址。。。。。
数组名这个东西你得先搞清楚
443692487
2012-07-23
打赏
举报
回复
这个分析下就能出来的啊,自己写个程序就知道了的。。。
fzamygsd
2012-07-23
打赏
举报
回复
字体颜色A旁边 插入源码
thulongkang
2012-07-23
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
一般传递数组都是两个参数一个是数组的首地址也即是数组名,另一个参数是数组元素的个数,为的是防止越界访问
C/C++ code
int n[10];
void sort(int *p, int n);
sort(n, 10);
[/Quote]值得学习,另外我想问一下,你们是怎么在帖子中贴代码的??
hnzmdzcm
2012-07-23
打赏
举报
回复
一般传递数组都是两个参数一个是数组的首地址也即是数组名,另一个参数是数组元素的个数,为的是防止越界访问
int n[10];
void sort(int *p, int n);
sort(n, 10);
atuwang
2012-07-23
打赏
举报
回复
常用void func(int *ArrayPtr,int LengthofArray){....}
ppsharp
2012-07-23
打赏
举报
回复
得到的都是指针的长度,32系统是size的结果是4。
传递数组可以增加一个形参,表示数组的长度。
或者传递数组的首指针和尾指针+1
thulongkang
2012-07-23
打赏
举报
回复
能否说明一下原因?不太懂啊!
珍惜生命远离CPP
2012-07-23
打赏
举报
回复
1 不是
2 也不能得到数组元素个数
四十七.c语言
数组
作为
函数
参数
47.
数组
作为
函数
参数 变量可以当作参数,这里的
数组
也可以当作
函数
的参数。
数组
可以由整个
数组
当作
函数
的参数,也可以由
数组
中的某个元素当作
函数
的参数; 1.整个
数组
当作
函数
参数,即把
数组
名称
传入
函数
中,例如: #include<stdio.h> void temp(int arr[]) { int i; for(i=0; i<5; i++) { printf("%d\n", arr[i]); } } int main() { .
用
数组
名作
函数
参数
关于用
数组
名作
函数
参数有两点要说明: (1) 如果
函数
实参是
数组
名,形参也应为
数组
名(或指针变量),形参不能声明为普通变量(如int array;)。实参
数组
与形参
数组
类型应一致(现都为int型),如不一致,结果将出错。 (2) 需要特别说明的是:
数组
名代表
数组
首元素的地址,并不代表
数组
中的全部元素。因此用
数组
名作
函数
实参时,不是把实参
数组
的值传递给形参,而只是将实参
数组
首元素的地址传递给形参。...
c语言以
数组
作为
函数
参数,C语言将
数组
作为
函数
参数
一个
函数
的形参是普通的局部变量。当发生
函数
调用时,程序创建这些形参,然后用对应的实参来初始化这些形参。形参的作用域就是
函数
块。
函数
内可以改变形参的值,而不会影响调用上下文中实参的值。如果需要将一个
数组
当作实参传入
函数
,则应把对应的形参声明成下面的形式:类型
名称
[ ]因为,当把
数组
名作为
函数
实参时,它会自动被转换为指针。所以上面的声明等同于下面的声明:类型 *
名称
当使用
数组
来声明
函数
参数时,方括号...
数组
作为
函数
参数
数组
作为
函数
参数 我们已经知道了可以用变量作为
函数
参数,此外,
数组
元素也可以作为
函数
实参,其用法与变量相同。
数组
名也可以作为实参和形参,传递的是
数组
首地址。 1、
数组
元素作为
函数
实参 由于实参可以是表达式形式,
数组
元素可以是表达式的组成部分,因此
数组
元素当然可以作为
函数
的实参,与用变量作实参一样,是单向传递,即“值传递”方式。 这里给大家一个例子: 例1:有两个数
指针、
数组
作为
函数
参数传递的方式
指针作为
函数
参数传递一维
数组
C 语言中声明了一个
数组
TYPE array[n],则
数组
名称
array 就有了两重含义: 第一,它代表整个
数组
,它的类型是TYPE[n]; 第二,它是一个常量指针,该指针的类型是TYPE*,该指针指向的类型是TYPE。 因此,指针作为
函数
参数传递一维
数组
有4种形式: #incl...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章