是否可以使用聚合初始化将aptr
设置为指向a
。哪个结构里面?问题是针对C和C ++的。
struct S {
int a;
int* aptr;
};
int main() {
S s = {
.a = 3,
.aptr = &a
};
return 0;
}
尝试:
#include <stdio.h>
struct S {
int a;
int* aptr;
};
int main() {
struct S s = {.a = 3, .aptr = &s.a};
printf("%d", *s.aptr);
}
这有效,但结构很奇怪,以常规方式分配指针也很容易。