事实:在 ANSI C 中,数组名可以用作指针。
对于:
unsigned int array_X[10];
void function(unsigned int *array);
我可以两种方式调用函数:
function(&array_X);
function(array_X);
我的问题是,什么代表结构的名称?它也是指针,可以像数组一样使用吗?
最佳答案
I can call function both ways
只有第二种方式是正确的。第一个传递的指针类型不正确,因此可以公平地说它是巧合。
what represents name of the structure?
代表结构本身的值。结构的地址恰好与其第一个成员的地址一致,但您必须使用 &
运算符显式获取地址。
回到数组,数组名可以用作指向其初始成员的指针这一事实并不意味着数组名仅表示该指针:名称表示整个数组,但编译器知道如何根据使用数组名称的表达式提取指针;这称为数组名称衰减。
关于c - 结构名称 - 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25406501/