我正在尝试将string
传递给函数。
我得到了:
Data:abcdefghijk
<br>size of Data:4
我的代码:
#include <iostream>
#include <conio.h>
using namespace std;
void trying (char *Data)
{
cout << "Data:" << Data;
cout << "\nsize of Data:" << sizeof(Data);
}
main()
{
char DaTa[] = "abcdefghijk";
trying(DaTa);
return 0;
}
答案 0 :(得分:0)
虽然其他成员在不推断你的意图方面有点迟钝,但如果你说你想要获得传递数组的大小,那将会有所帮助。
Anyhoo ....
在trying()
内,sizeof(Data)
计算指针的大小,而不是调用者传递的数组的大小。
只给出一个指针,trying()
无法访问数组的大小,因为指针不携带该信息(它可以指向一个元素或数组中的第一个元素,并且有没办法告诉)。如果您希望trying()
访问数组中的元素数,则需要单独传递它(例如,作为单独的参数)。