标题:可变参数的疑问
取消只看楼主
shulun743
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2022-10-12
结帖率:50%
已结贴  问题点数:20 回复次数:0 
可变参数的疑问
程序代码:
#include <stdio.h>
#include <stdarg.h>

 
double average(int num,...)
{
    va_list valist;
    int sum = 0.0;
    int i;

 
    /* 为 num 个参数初始化 valist */
    va_start(valist, num);

 
    /* 访问所有赋给 valist 的参数 */
    for (i = 0; i < num; i++)
    {
        sum = va_arg(valist, int);
        printf("sum = %d\n", sum);
    }
    /* 清理为 valist 保留的内存 */
    va_end(valist);

 
    return sum/num;
}

 
int main()
{
   printf("Average of 2, 3, 4, 5 = %d\n", average(4, 2,3,4,5));
}


问题:
    1、va_list valist;  其中的 valist; 是变量吧?

    2、printf("Average of 2, 3, 4, 5 = %d\n", average(4, 2,3,4,5)); 打印后,它的值怎么会是 “Average of 2, 3, 4, 5 = 4202508” ? 这个4202508怎么出来的?
搜索更多相关主题的帖子: int printf sum average num 
2022-10-14 13:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510311-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.289188 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved