在函数参数中获取字符串的大小

时间:2015-04-03 20:53:47

标签: c++

我正在尝试将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;
}

1 个答案:

答案 0 :(得分:0)

虽然其他成员在不推断你的意图方面有点迟钝,但如果你说你想要获得传递数组的大小,那将会有所帮助。

Anyhoo ....

trying()内,sizeof(Data)计算指针的大小,而不是调用者传递的数组的大小。

只给出一个指针,trying()无法访问数组的大小,因为指针不携带该信息(它可以指向一个元素或数组中的第一个元素,并且有没办法告诉)。如果您希望trying()访问数组中的元素数,则需要单独传递它(例如,作为单独的参数)。