首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

两段程序不一样,为啥输出一样

2012-10-21 
两段程序不一样,为什么输出一样?程序一C/C++ code#includestdio.h#includestdlib.h#includestdarg.h

两段程序不一样,为什么输出一样?
程序一

C/C++ code
#include<stdio.h>#include<stdlib.h>#include<stdarg.h>void test( int a[ ],...){      va_list var_arg;      a++;                            //这是程序一多一句话      va_start( var_arg, a );      printf("%d\n",va_arg( var_arg, int ));      va_end( var_arg );}int main( void ){    int a[ 3 ] ={ 1, 2, 3 };    int b = 4;    test( a, b );    getchar( );}


程序二
C/C++ code
#include<stdio.h>#include<stdlib.h>#include<stdarg.h>void test( int a[ ],...){      va_list var_arg;      va_start( var_arg, a );      printf("%d\n",va_arg( var_arg, int ));      va_end( var_arg );}int main( void ){    int a[ 3 ] ={ 1, 2, 3 };    int b = 4;    test( a, b );    getchar( );}


输出都是4,why?

[解决办法]
因为a是以个数组,a++表示的是a的地址加1,跟他里面的值没关系,改变的只是地址而已。

热点排行