?? ex3.cpp
字號:
//第3章 運算符與表達式
//[例3.1] 整型數據的溢出和格式轉換函數
#include <stdio.h>
void main(void)
{ unsigned char k=(char)0xff;
signed char n=(char)0xff; //輸出
printf("%d,[%d,%x]\n",k, k+1, k+1); //255,[256,100]
printf("%d,[%d,%x]\n",n, n+1, n+1); //-1,[0,0]
}
// [例3.2]同長度整型數的賦值操作
#include<stdio.h>
void main(void) //輸出
{ signed short i='\xfe'; printf("%4hx,%d\n",i,i); //fffe,-2
unsigned short k=i ; printf("%4hx,%d\n",k,k); //fffe,65534
}
// [例3.3]短整型數向長整型數的擴展
#include <stdio.h>
void main(void)
{ short s=(signed char) 0x7f; printf("%08x,%d\n",s,s); //輸出0000007f,127
int k= 0x9f; printf("%08x,%d\n",k,k); //輸出0000009f,159
int i=(signed char) 0x9f; printf("%x,%d\n",i,i); //輸出ffffff9f,-97
}
//[例3.4]長整型數向短整型數的截斷賦值
#include <stdio.h>
void main(void)
{ long n= 0xfedc8f63;
short s=n; printf("%08x,%d\n",s,s); //輸出ffff8f63,-28829
unsigned short u=n; printf("%08x,%d\n",u,u); //輸出00008f63,36707
short t=0x8f63; printf("%08x,%d\n",t,t); //輸出ffff8f63,-28829
char c=s; printf("%c,%c,%x \n",'c',c,c); //輸出 c,c,63
}
//[例3.5] (x+=2)+=1中的(x+=2)僅求值一次,(x+=2)=(x+=2)+1中的(x+=2)被求值2次
#include <stdio.h> //(x+=2)=(x+=2)+1的運算結果是不確定的,是有副作用的
void main(void) //vc6.0輸出結果
{ int x=0;(x+=2)+=1; printf("%d\n",x); //輸出:3
x=0; (x+=2)=(x+=2)+1; printf("%d",x); //輸出:5
}
// [例3.6]一個副作用的運算
# include<stdio.h>
void main() //vc6.0輸出結果 [Builder 5.0輸出結果]
{ int z=1; printf("%d,%d,%d\n",z++,-z++,z++); // 1,-1,1 [3,-2,1]
printf("%d,%d,%d\n",z++, z , -z++); // 4,4,-4 [5, 5,-4]
z=1; printf("%d\n",(z++)+(z++)+(z++)); // 3 [6 ]
z=1; printf("%d,%d,%d\n",++z,++z,++z); // 4,3,2 [4,3,2]
int x=4; printf("%d\n",(++x)+(++x)+(++x)); // 19 [18]
}
33
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -