vir*_*chi 0 c++ arrays function
我对 C++ 并不陌生,但今天我发现 main 函数和其他函数中数组的大小不同。这是为什么?我想这与指针有关。
#include<bits/stdc++.h>
using namespace std;
void func(int arr[]){
cout<<"func size: "<<sizeof(arr)<<"\n";
}
int main(){
int arr[5];
cout<<sizeof(arr)<<"\n";
func(arr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以测试此代码以查看差异。
因为数组衰减为指针什么是数组到指针衰减?。
您可以通过引用传递数组来查看相同的大小,如下
#include <iostream>
template <class T, size_t n> void func(T (&arr)[n]) {
std::cout << "func size: " << sizeof(arr) << "\n";
}
int main() {
int arr[5];
std::cout << sizeof(arr) << "\n";
func(arr);
}
Run Code Online (Sandbox Code Playgroud)
并查看为什么是“using namespace std;” 被认为是不好的做法? 为什么我不应该#include <bits/stdc++.h>?
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |