您的位置:58脚本 > c函数参数传递方式 C 函数参数

c函数参数传递方式 C 函数参数

2023-04-10 12:32 C语言教程

c函数参数传递方式 C 函数参数

c函数参数传递方式 C 函数参数

c函数参数传递方式

学习C - C函数参数

您可以使用const关键字限定一个函数参数,这表示函数会处理参数作为常量。

通常,将const关键字应用于作为指针的参数。

这里是一个带有const参数的函数的例子:

bool hello(const char* pmessage){
   ...
}

具有可变数量参数的函数

以下代码显示了如何使用可变长度参数声明一个函数原型。

double average(double v1, double v2, ...);

省略号表示一个变量参数数量可以跟随前两个固定参数。

可变长度参数列表必须至少有一个固定参数。

要引用参数,请使用指针。

您需要使用三个函数来处理可变数量的参数。

它们称为va_start(),va_arg()和va_end()。

您必须调用va_start()来初始化变量参数列表指针的值功能。此指针必须声明为类型va_list。

va_start()具有以下形式:

void va_start(va_list parg, last_fixed_arg);

此函数接受两个参数:类型为va_list的指针parg,以及为该函数指定的最后一个固定参数的名称。

va_list类型是在stdarg.h中定义的类型。

va_arg()的第一个参数是通过调用va_start()初始化的变量parg。

第二个参数是类型的规范期望找到的参数。

函数va_arg()返回由parg指定的当前参数的值这是存储在值。

它更新指针parg以指向列表中的下一个参数。

va_end()是清理。

它将parg指针重置为NULL。


    #include <stdio.h> 
    #include <stdarg.h> 
      //from www. j  av a  2 s  .c  om
    double average(double v1 , double v2,...);       // Function prototype 
      
    int main(void) 
    { 
      double v1 = 1.5, v2 = 2.5; 
      int num1 = 6, num2 = 5; 
      long num3 = 2L, num4 = 12L; 
      
      printf("Average = %.2lfn", average(v1, 3.5, v2, 4.5, 0.0)); 
      printf("Average = %.2lfn", average(1.0, 2.0, 0.0)); 
      printf("Average = %.2lfn", average( (double)num2, v2,(double)num1, (double)num4,(double)num3, 0.0)); 
      return 0; 
    } 
      
    // Function to calculate the average of two or more arguments 
    double average( double v1, double v2,...) { 
      va_list parg;                      // Pointer for variable argument list 
      double sum = v1 + v2;              // Accumulate sum of the arguments 
      double value = 0.0;                // Argument value 
      int count = 2;                     // Count of number of arguments 
      
      va_start(parg,v2);                 // Initialize argument pointer 
      while((value = va_arg(parg, double)) != 0.0) { 
        sum += value; 
        ++count; 
      } 
      va_end(parg);                                  // End variable argument process 
      return sum/count; 
    } 

上面的代码生成以下结果。



main()函数

main()函数是执行开始的地方。

main()可以有一个参数列表,这样你可以传递参数给main()当你执行一个程序时命令行。

您可以编写main()函数,不带参数或使用两个参数。

当你写参数的main()第一个参数是int类型,并存储一个计数参数,包括程序本身的名称。

main()的第二个参数是一个指向字符串的指针数组。


#include <stdio.h> 
int main(int argc, char *argv[]) 
{ 
  printf("Program name: %sn", argv[0]); 
  for(int i = 1 ; i<argc ; ++i) 
    printf("Argument %d: %sn", i, argv[i]); 
  return 0; 
} 

上面的代码生成以下结果。



阅读全文
以上是58脚本为你收集整理的c函数参数传递方式 C 函数参数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS