刷题碰到的问题
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 );