69,380
社区成员
发帖
与我相关
我的任务
分享
这里有几个疑问:1)lemon=twofold(lime); 此语句中的结构体名lime代表什么?
2)orange=lemon; 此语句怎么理解?
1、lime是一个结构体类型,一个构造类型!独立类型!这个类型大小就是sizeof(lime)这么大,此题中为4*100个字节!记住,这是struct类型的大小为400【固定的】,同int等类型都一样有了固定大小!400就是固定大小!
2、当一种struct类型作为参数传递后,那么他同一个内置类型传递是一样的!一个int整形传递时,拷贝了4个字节(32位系统固定大小)!同样,struct类型也要拷贝他的固定大小,400!
PS:所以很多时候,为了速度上的需要,对于构造类型,都建议传递指针(32位4个字节),因为这样传递要减少很多的拷贝!
3、对于同种的类型的构造struct类型,同内置类型一样!可以赋值!两个int整形可以赋值,同样同种struct类型也一样!这里的赋值也是对400个内存大小进行值拷贝!
希望有帮助!有错请纠正!
这里有几个疑问:1)lemon=twofold(lime); 此语句中的结构体名lime代表什么?
2)orange=lemon; 此语句怎么理解?
1、lime是一个结构体类型,一个构造类型!独立类型!这个类型大小就是sizeof(lime)这么大,此题中为4*100个字节!记住,这是struct类型的大小为400【固定的】,同int等类型都一样有了固定大小!400就是固定大小!