不用操作符實現兩個數相加,代碼如下:
int main()
{
int a=9;
int b=3;
printf("%d\n",printf("%*s%*s",a,"",b,""));
return 0;
}
結果在這裡:
http://ideone.com/YlBhO
神奇啊!
printf函數中的*操作符用來指定輸出的個數,這個值由printf後面的第一個參數指定
所以printf("%*s%*s",a,"",b,"")可以分解為printf("%*s",a,"")輸出a個空格,同理printf("%*s",b,"")是輸出b個空格,這種寫法好處是是a,b都是變量,可以在外部進行修改。
printf("%*s%*s",a,"",b,"")其實就是輸出了a+b個空格,在這裡就是12個了,而printf的返回值是總共輸出的字符個數,所以上面的語句輸出是
12
12個空格加上12這個數字。
摘自 家裡蹲博客