2012-07-10 35 views

回答

0

这不是一个都清楚你到底是什么。三个明显的可能性会看起来是这样的:

#include <iostream> 
#include <numeric> 

int main() { 

    short array[] = {10, -20, 30, -40}; 

    std::cout << std::accumulate(array, array+4, (unsigned short)0) << "\n"; 
    std::cout << std::accumulate(array, array+4, 0U) << "\n"; 
    std::cout << std::accumulate(array, array+4, (short)0) << "\n"; 
    return 0; 
} 

我不能肯定你是怎么想的,你可以得到131052如同一个结果 - 这不是你从任何一个16位或得到一个32位的和。