1.数据库回滚操作 sql语句
2.
输出下面程序的运行结果
View Code
1 #include2 3 int main() { 4 5 struct aa { int a; int b; }aa; 6 7 union bb { int a; int b; }bb; 8 9 aa.a = 1; aa.b = 2;10 11 bb.a= 3; bb.b = 5;12 13 printf("%d %d\n",aa.a,aa.b);14 15 printf("%d %d\n",bb.a,bb.b);16 17 return 0; }18 19
共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。
看一下对应的汇编代码,发现第25,26行都是对[ebp-0Ch] 进行赋值,即下面一个是进行重新赋值!
1 22: aa.a = 1; 2 3 00401028 mov dword ptr [ebp-8],1 4 5 23: aa.b = 2; 6 7 0040102F mov dword ptr [ebp-4],2 8 9 24:10 11 25: bb.a= 1;12 13 00401036 mov dword ptr [ebp-0Ch],114 15 26: bb.b = 51;16 17 0040103D mov dword ptr [ebp-0Ch],33h18 19 27:20 21 28:22 23 29: printf("%d %d\n",aa.a,aa.b);
3. 输出下面的结果
1 #include2 3 4 5 int main() 6 7 { 8 9 10 11 12 13 int a[] = { 1,2,3,4,5,6,7,8};14 15 16 17 18 19 char * p = (char *)a;20 21 p = p +4;22 23 24 25 printf("%d %d",*(a+4),*(int *)p);26 27 28 29 return 0;30 31 }
4.下面这个程序编译有没有问题,如果有,请指出来!
1 #include2 using namespace std; 3 4 5 class A 6 { 7 8 public : 9 virtual int f()10 {11 cout<<"1"<