Kiedy funkcja ma parametr tablicy o określonym rozmiarze, dlaczego jest ona zastępowana wskaźnikiem?
Biorąc pod uwagę następujący program,
#include <iostream>
using namespace std;
void foo( char a[100] )
{
cout << "foo() " << sizeof( a ) << endl;
}
int main()
{
char bar[100] = { 0 };
cout << "main() " << sizeof( bar ) << endl;
foo( bar );
return 0;
}
wyjścia
main() 100
foo() 4
Dlaczego tablica jest przekazywana jako wskaźnik do pierwszego elementu?Czy to dziedzictwo z C?Co mówi standard?Dlaczego upuszczono ścisłe bezpieczeństwo typu C ++?