这里一个例子,加和不加的区别:
回答了获取结构体里面的单变量成员和数组成员的地址时,结构体变量前加不加&的问题。
另外,当结构体数组传入函数时,需要加&。如果不加,则只是结构体类型的变量,如结构体类型是zhh_st,那么形参zhh_st zhh,就是一个zhh_st型的变量。
结构体类似于一个数组,比如int a[3],则,如果传入int a,则只能传入数组的第一个元素,即传入一个int的字节,要传入整个数组,则要写成:int* a,才表示传入了数组,当然,还需要指定数组个数。
对于上述结构体,若只传入zhh_st zhh,则只传入了结构体数组的首个元素。要传入整个结构体,形参写成zhh_st* zhh,并指定结构体数组个数。传入时,实参写成&zhh。
或者再看这一篇:
“结构作为函数参数”部分,其实也是一个意思,结构体并不是不能直接作为函数参数,只不过,若只用结构体名,则传入的就是一个结构体变量,用&加结构体名,可以传入结构体数组,单个结构体变量也可以认为是一个元素的结构体数组。