首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C结构printf名称和地址不同?

C结构printf名称和地址不同?
EN

Stack Overflow用户
提问于 2018-06-19 10:12:19
回答 1查看 0关注 0票数 0

我不确定C结构的以下方面。示例代码来显示我的意思:

代码语言:javascript
复制
#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;
}

什么ab实际上在一个程序(而不是意味着&a&b)?

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 19:58:05

要打印一个像这样的指针&a,你应该使用格式%p(并且严格地说,你应该把指针指向void *在调用中printf()),导致:

代码语言:javascript
复制
printf("&a = %p\n", (void *)&a);

例如。该printf()函数并不正式知道如何打印结构的内容,所以传递ab导致未定义的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档