#include <stdio.h> main() union char a[2];int k; data; data.a[0]='5'; data.a[1]='
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#include <stdio.h> main() union char a[2];int k; data; data.a[0]='5'; data.a[1]='相关的知识,希望对你有一定的参考价值。
#include <stdio.h> main() union char a[2];int k; data; data.a[0]='5'; data.a[1]='\0'; printf("%d",data.k);
输出的答案是多少啊 能解释一下吗?谢谢
由于联合体使用的是同一块内存,也就是说,改变了a,会改变k
没有初始化的data,是4个字节的,十六进制表示为:0xCCCCCCCC
修改char[0]='5',十六进制是:0x35
修改char[1]='\0',十六进制是:0x00
由于这个是栈,因此修改以后,data.a 的值就变为:0xCCCC0035,以十进制打印出来就是:
-859045835
不懂可追问 参考技术B 5追问
你解释一下吗? 谢谢!
以上是关于#include <stdio.h> main() union char a[2];int k; data; data.a[0]='5'; data.a[1]='的主要内容,如果未能解决你的问题,请参考以下文章
C 编程指令 #include<stdio.h> printf
在C语言中#include "stdio.h"和#include <stdio.h>有啥区别?
C语言里面的这个#include <stdio.h>啥意思啊?
Visual Studio Code,#include <stdio.h> 说“将包含路径添加到设置”
Visual Studio Code,#include <stdio.h> 说“将包含路径添加到设置”
用vs2010编了以下程序 #include<stdlib.h> #include<stdio.h> #define OVERFLOW -2 #define OK 1 #def