
这是我用来检查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语句都会调用未定义的行为,因为提供的参数与转换说明符不匹配.
要详细说明,要打印指针,您需要使用%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. […]
以上是内存溢出为你收集整理的C – struct变量是指针吗?全部内容,希望文章能够帮你解决C – struct变量是指针吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)