标签:返回 一个 变量 string 养成 定义 color start 例子
一:函数参数的传递原理:
函数参数以数据结构——栈,的形式存取,从右到左入栈。因此,我们只要知道了任意一个变量的地址,并且知道其他变量的类型,通过指针移位运算,就可以顺藤摸瓜,找到其他输入变量。
二:头文件<stdarg.h>中几个重要的宏定义如下:
typedef char * va_list;
void va_start ( va_list ap, prev_param ); /* ANSI version */
type va_arg ( va_list ap, type );
#include <stdio.h> #include <stdarg.h> int sum(int n,int j, ...) { int total = 0; int i; va_list ap;/* ap is a pointer point to a string.*/ /* step 1*/ va_start(ap,j);/*step 2 initialize pointer ap.*/ total = j; for(i=0;i<n-1;i++){ total += va_arg(ap,int);/*step 3 acquire paremeters*/ } va_end(ap);/*step 4 set ap to NULL*/ return total; } int main(int argc,char * argv) { int number; number = sum(4,1,2,3,4); printf("the sum is %d\n",number); return 0; }
标签:返回 一个 变量 string 养成 定义 color start 例子
原文地址:https://www.cnblogs.com/zjsthunder/p/12188659.html