读书人

函数值传递的有关问题

发布时间: 2012-03-14 12:01:12 作者: rapoo

函数值传递的问题
#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;
}

读书人网 >C++

热点推荐