#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函式和外部常規函式中得到的結果是不同的?
uj5u.com熱心網友回復:
在C++中,陣列永遠不會按值傳遞。它是傳遞第一個元素(準確地說是第0個)的指標。uj5u.com熱心網友回復:
#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]) 中,維數大小不可省略。
uj5u.com熱心網友回復:
作為形參int a[]等價于 int *a;你可以試試a++是可以的!uj5u.com熱心網友回復:
一樓和二樓和三樓 說的對啊最主要的 思路是, 在這個作用域中 , sizeof 能看到 什么,
sizeof 能看到 什么 ,大小 就是 什么
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/124395.html
標籤:基礎類
