下面给出两个struct A1和struct A2的结构,以及部分代码: struct A1 { int *items; int val0; int val1; int val2; }; struct A2 { int items[0]; int val0; int val1; int val2; }; A1 a1; a1.items=&(a1.val0); a1.items[0] = 1; a1.items[1] = 2; a1.items[2] = 3; A2 a2; a2.items[0] = 11; a2.items[1] = 12; a2.items[2] = 13; 对于下面给出的四个逻辑表达式, 1) sizeof(A1)>sizeof(A2) 2) a1.val0 ==1 3) a2.val0 == 11 4) *(a2.items+1)==12 若不考虑编译时的警告信息并采用内存对齐方式,则正确说法的是: