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

函数值传递的有关问题

2012-03-14 
函数值传递的问题#includeiostreamconstintLen66constintDivs6usingnamespacestdvoidSubDivide(cha

函数值传递的问题
#include   <iostream>
const   int   Len   =   66;
const   int   Divs   =   6;
using   namespace   std;

void   SubDivide(   char   ar[],   int   low,   int   high,   int   level   );

int   main()
{
char   ruler[Len];
int   i;
for(   i   =   1;   i   <   Len   -   2;   i++   )
ruler[i]   =   '   ';
ruler[Len-1]   = '\0 ';
int   max   =   Len   -   2;
int   min   =   0;
ruler[min]   =   ruler[max]   =   '| ';
cout   < <   ruler   < <   endl;
for(   i   =   1;   i   <=   Divs;   i++   )
{
SubDivide(   ruler,   min,   max,   i   );
cout   < <   ruler   < <   endl;
}

return   0;
}

void   SubDivide(   char   ar[],   int   low,   int   high,   int   level   )
{
if(   level   ==   0   )
return;
int   mid   =   (   high   +   low   )   /   2;
ar[mid]   =   '| ';
SubDivide(   ar,   low,   mid,   level   -   1   );
SubDivide(   ar,   mid,   high,   level   -   1   );
}

这是 <C++   primer   plus> 第五版第七章的一个课程题,这里面的SubDivide中调用了.char   ar[]     但它并没有加引用符,为什么可以修改ruler的值???

[解决办法]
CharInString的功能只是得到ch的个数,本来就没有改变str的值……

试试这个:
#include <iostream>
using namespace std;

void fun(char x[])
{
x[0]= 'a ';
}

void main()
{
char ruler[1]={0};

fun(ruler);

cout < <ruler[0] < <endl;
}

热点排行