我不确定C结构的以下方面。示例代码来显示我的意思:
#include <stdio.h>
#include <stdlib.h>
struct s1 {
int i;
};
struct s2 {
float f;
};
int main() {
struct s1 a;
struct s2 b;
a.i = 1234;
b.f = 1234.0;
printf("%u\n", a);
printf("%u\n", &a);
printf("%u\n", b);
printf("%u\n", &b);
getchar();
return 0;
}
什么a
和b
实际上在一个程序(而不是意味着&a
和&b
)?
发布于 2018-06-19 19:58:05
要打印一个像这样的指针&a
,你应该使用格式%p
(并且严格地说,你应该把指针指向void *
在调用中printf()
),导致:
printf("&a = %p\n", (void *)&a);
例如。该printf()
函数并不正式知道如何打印结构的内容,所以传递a
或b
导致未定义的行为。
https://stackoverflow.com/questions/-100005433
复制相似问题