几个有意思的基础C题

816阅读 0评论2013-01-09 xhb8413
分类:C/C++

几个有意思的基础C题,结果需要深思

点击(此处)折叠或打开

  1. [root@ethan lua]# cat testsh.cpp
  2. #include<iostream>
  3. using namespace std;
  4. union t
  5. {
  6.         int i;
  7.         char str[2];
  8. };
  9. union myun
  10. {
  11.  struct {int x; int y; int z;} u;
  12.  int k;
  13.  int j;
  14. }a;
  15. int main()
  16. {
  17.         t test;
  18.         test.i=0;
  19.         test.str[0]=20;
  20.         test.str[1]=1;
  21. // cout <<"str[0]=" << test.str[0] << " str[1]=" << test.str[1] << endl;
  22.         cout << "test.i = " << test.i << endl;

  23.         a.u.x = 4;
  24.         a.u.y = 5;
  25.         a.u.z = 6;
  26.         a.k = 0;
  27.         cout << a.u.x << " " << a.u.y << " " << a.u.z << endl;
  28.         a.j = 1;
  29.         cout << a.u.x << " " << a.u.y << " " << a.u.z << endl;

  30.         char a[] = "abc";
  31.         char *pa = "abc";
  32.         char b[] = "abc";
  33.         //char *pa = "abc";
  34.         char *pb = "abc";
  35.         const char c[] = "abc";
  36.         const char* ppa = "abc";
  37.         const char d[] = "abc";
  38.         //const char* ppa = "abc";
  39.         const char* ppb = "abc";
  40.         cout << (a == b) << endl;
  41.         cout << (pa == pb) << endl;
  42.         cout << (c == d) << endl;
  43.         cout << (ppa == ppb) << endl;
  44.         return 0;
  45. }
[root@ethan lua]# ./testsh
test.i = 276 //字符间数据是相加的。。?
0 5 6
1 5 6 //联合体永远替换同空间
0
1
0
1

上一篇:c中的union的用法和作用
下一篇:C++拷贝构造函数详解