C语言中定义的struct变量是否本质上是一个指针类型?

2026-04-16 19:252阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计393个文字,预计阅读时间需要2分钟。

C语言中定义的struct变量是否本质上是一个指针类型?

我搜索了很多,但找不到关于这个话题的具体信息。我的问题是:struct变量是指针吗?如果每个输入都存储在struct成员的地址中,那么struct变量用于什么?这是我用来检查struct变量的代码,当我时。

我搜索了很多,但我找不到任何关于此的话题.我的问题是:struct变量是指针吗?如果每个输入都存储在struct members的地址中,那么struct变量用于什么?

这是我用来检查struct变量的代码,当我打印存储在变量中的内容时,它给了我另一个地址,但我无法确定该地址的用途.

这是我的代码及其输出:

struct test { int a; int b; char c; }; int main() { struct test f; printf("%u", &f); printf("\n%d", f); printf("\n%u", &f.a); printf("\n%u", &f.b); }

输出:

6487616

6487600

6487616

6487620

简答:不.

长版本:上述程序中的所有print语句都会调用未定义的行为,因为提供的参数与转换说明符不匹配.

C语言中定义的struct变量是否本质上是一个指针类型?

要详细说明,要打印指针,您需要使用%p转换说明符,并为参数使用强制转换为void *.

结构变量没有通用(一对一排序)格式说明符.您需要选择具有相应格式说明符的单个成员(或其成员),并将其作为参数传递.

也就是说,关于第一个成员和访问,

[…] A pointer to a structure object, suitably converted, points to its initial member (or if that member is a bit-field, then to the unit in which it resides), and vice versa. […]

本文共计393个文字,预计阅读时间需要2分钟。

C语言中定义的struct变量是否本质上是一个指针类型?

我搜索了很多,但找不到关于这个话题的具体信息。我的问题是:struct变量是指针吗?如果每个输入都存储在struct成员的地址中,那么struct变量用于什么?这是我用来检查struct变量的代码,当我时。

我搜索了很多,但我找不到任何关于此的话题.我的问题是:struct变量是指针吗?如果每个输入都存储在struct members的地址中,那么struct变量用于什么?

这是我用来检查struct变量的代码,当我打印存储在变量中的内容时,它给了我另一个地址,但我无法确定该地址的用途.

这是我的代码及其输出:

struct test { int a; int b; char c; }; int main() { struct test f; printf("%u", &f); printf("\n%d", f); printf("\n%u", &f.a); printf("\n%u", &f.b); }

输出:

6487616

6487600

6487616

6487620

简答:不.

长版本:上述程序中的所有print语句都会调用未定义的行为,因为提供的参数与转换说明符不匹配.

C语言中定义的struct变量是否本质上是一个指针类型?

要详细说明,要打印指针,您需要使用%p转换说明符,并为参数使用强制转换为void *.

结构变量没有通用(一对一排序)格式说明符.您需要选择具有相应格式说明符的单个成员(或其成员),并将其作为参数传递.

也就是说,关于第一个成员和访问,

[…] A pointer to a structure object, suitably converted, points to its initial member (or if that member is a bit-field, then to the unit in which it resides), and vice versa. […]