继承我的代码:
using namespace std;
class Network
{
// private function to constructe the nodes with a left and right childed
private:
struct node
{
node* left;
node* mid;
node* right;
char data;
};
node* root;
// public function for the the program
public:
char *Nodes ;
Network()
{
root = NULL;
}
char Link(char,char);
node* Network::Order(char* temp){
cout << "Order:" << sizeof(temp);
node* store;
store = new node[sizeof(temp)];
};
};
char Network::Link(char temp, char temp1){
};
// Smaller elements go left
// larger elements go right
/*
*
*/
int main() {
Network object;
char p[11];
p[0] = 'a';
p[1] = 'b';
cout << "p:" << sizeof(p);
object.Order(p);
return 0;
}
输出:p:11顺序:4
为什么秩序4应该是11因为我传递数组p t
答案 0 :(得分:3)
当传入期望指针的函数时,您的数组会被衰减为指针。 sizeof
函数中的Order
运算符返回指针的大小,该指针在您的体系结构中为4个字节。
(C99,6.3.2.1p3)“除非它是sizeof运算符的操作数 或者一元&amp;运算符,或者是用于初始化的字符串文字 数组,类型为“数组类型”的表达式将转换为 带有“指向类型的指针”类型的表达式,指向初始值 数组对象的元素,而不是左值。“