我想很像标准数组(即整数数组),当你传递一个结构数组时,你必须用它传递数组的大小。然而,我还没有理解的是,当你获取一个结构第一个元素的sizeof时,你会得到4(在第一个元素中意味着4个字节?)。
现在我传递一个只包含字符串的结构数组。我检查单个数组元素的大小(记住它将是一个结构)我得到类似28的东西,但是在我将它传递给函数之后(并且通过传递给函数我是指通过值传递的值的地址)我的数组中的第一个元素),我只得到4.
现在我猜测sizeof是在数组中得到我的struct的第一个元素。所以我的myStruct类型为myArray:
myStruct { 字符串名称 字符串地址 字符串邮政编码 }
我认为sizeof正在看“名字”?但我知道一个事实,名称不是4个字节长 - 它是10。
看着的尺寸究竟是多少?结构数组的内存结构是什么样的?
由于 托马斯
答案 0 :(得分:0)
4将是您传递的指针的大小,而不是它所引用的结构的大小。
答案 1 :(得分:0)
sizeof()
适用于类型,而不是对象。隐式地将sizeof(some_object)
视为 - 使用伪表示法 - “sizeof(typeof(some_object))
”。