我在这里问了一个问题:C++ - class issue
我仍然没有得到的是此处的指针参数:
void setInfo(char *strName,int id,double wage)
它被调用的地方:
abder.setInfo("Abder-Rahman",123,400);
我知道数组的名字是一个指针。但是,为什么我们必须要有一个指针数据类型呢?我们不能在函数参数列表中使用 char[]
吗?因为我认为我在尝试时遇到了错误。
谢谢。
最佳答案
But, why should we have to have a pointer data type?
因为在编译函数时需要知道函数参数的大小。 IE。该函数需要知道内存中的参数列表有多远才能找到 id
和 wage
。
Cannot we use a char[] in the function parameter list?
是的,你可以,但它仍然是通过指针传递的。数据作为数组的一部分而具有的任何附加属性(例如 sizeof()
返回数组的总大小)都不会保留在被调用函数中。在函数签名中使用 []
的能力只是向您表明传递的项目应该是某种类型的数组(而不是指向结构的指针)。
关于C++ - 指针函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4773334/