在C语言论坛看到的一个帖子
本来绞尽脑汁也毫无眉目,因为不用if 不可能的,我只能想到递归但是实在想不出不用if 怎么来递归,后来想起来看过《短码之美》,书中介绍短码技巧的时候说过&&短路运算,就用了,果然成功了!
int
func (int n, int *p) {
n && func (n-1, p);
return *p += n;
}
int
main (void) {
int n = 3, sum = 0, *p = &sum /* 结果扔到sum */
func (n, p);
return 0;
}