刷题碰到的问题

10.12刷题问题

1、&&符号问题

int main()
{
  int a=1,b=2,m=0,n=0,k;

  k=(n=b<a)&&(m=a) ;
  printf("%d,%d\n",k,m);

  return 0;
}

输出结果是多少?这里面有一个坑就是“&&”   这个运算符有一个特性就是“短路”,当前面的运算已经为false时后面就被“短路”从而不进行计算。

2、union模式问题

X定义如下,若存在X a; a.x=0x11223344;则a.y[1]的值可能是多少?

union X{
    int x;
    char y[4]; 
};

这里面又有一个坑那就是union的模式,其实这也不算是坑,因为他的题目其实已经从侧面表达出来可能会有多种情况。

因为union是使用的共享内存,所以y[0]=0x11,y[1]=0x22,union大小可以按照大端模式和小端模式排序,所以还有可能为33

1)大端模式:

低地址 -----------------> 高地址
0x11  |  0x22  |  0x33  |  0x44
2)小端模式:

低地址 ------------------> 高地址
0x44  |  0x33  |  0x22  |  0x11
可见,大端模式和字符串的存储模式类似。

3、ofstream对文件进行操作

能实现删除文件功能的语句是?

ofstream fs("date.dat", ios::trunc );

 

ofstream fs("date.dat", ios::out );

 











posted @ 2020-10-12 21:06  The_Reborn  阅读(165)  评论(0编辑  收藏  举报