标签:struct 输入 ima turn image idt sys pre fun
先看代码
#include<stdio.h> #include<stdlib.h> typedef struct { int a[2]; double d; } struct_t; double fun(int i) { volatile struct_t s; s.d = 3.14; s.a[i] = 1073741824; return s.d; } int main(void) { printf("%lf\n", fun(0)); printf("%lf\n", fun(1)); printf("%lf\n", fun(2)); printf("%lf\n", fun(3)); //printf("%lf\n", fun(4)); system("pause"); return 0; }
打印fun函数当输入0到3时,输出会不一样:
当函数输入4时,程序运行错误:
前4项正常输出,到输出fun(4)时,则程序会报错,这是为什么呢!!!
我们可以看到在struct这个结构体在内存中的排列顺序为a中有两个int类型,各占四个字节,d为double类型,占8个字节,如下图:
标签:struct 输入 ima turn image idt sys pre fun
原文地址:https://www.cnblogs.com/roscangjie/p/12235575.html