a=(b,c)的返回值为啥等于c(语言-c++)

问题遇到的现象和发生背景

为啥这个current_max=(current_max+nums[i],current_max)能执行?我在写的时候忘记在前面写max了,但是发现可以执行

img

问题相关代码
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int final_max=nums[0];
        int current_max=nums[0];
        for(int i=1;i<nums.size();i++)
        {
            current_max=(current_max+nums[i],current_max);
            cout<<current_max;
            final_max=max(current_max,final_max);
        }
        return final_max;
    }
};

current_max=(current_max+nums[i],current_max);中右边是逗号表达式,其值是最后一项的值,即current_max的值