【菜鸟求助】sizeof小问题

magicdrawing 2014-03-20 11:46:41
#include<iostream>

using namespace std;

void po(int a[]) {
cout<<sizeof(a);
}

int main() {
int a[] = {1,2,3,4,5,6,7,8};

cout<<sizeof(a);

po(a);

return 0;

}



为什么在mian函数和外部常规函数中得到的结果是不同的?
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenny_hwei 2014-04-06
  • 打赏
  • 举报
回复
MonkeyKingMKY 2014-03-29
  • 打赏
  • 举报
回复
一楼和二楼和三楼 说的对啊 最主要的 思路是, 在这个作用域中 , sizeof 能看到 什么, sizeof 能看到 什么 ,大小 就是 什么
My_Love 2014-03-24
  • 打赏
  • 举报
回复
作为形参int a[]等价于 int *a;你可以试试a++是可以的!
sjtcumt 2014-03-22
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
 
void po_array(int (&a)[8]) 
{
    cout<<sizeof(a)<<endl;
} 

void po_ctr(int a[])
{
 cout<<sizeof(a)<<endl;
}


void main()
{   

	int a[8] = {1,2,3,4,5,6,7,8}; 
    cout<<sizeof(a)<<endl; 
    po_array(a);
    po_ctr(a);
	int cc;
	cin>>cc;
}
1楼说的对,C++中函数使用数组作为形参时,实参数组不能复制,只能将数组的第一个元素地址作为指针传递给形参, 也可以使用引用,注意void po_array(int (&a)[8]) 中,维数大小不可省略。
hongss 2014-03-21
  • 打赏
  • 举报
回复
在C++中,数组永远不会按值传递。它是传递第一个元素(准确地说是第0个)的指针。

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧