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

帮忙看看这段代码有什么有关问题

2013-03-22 
帮忙看看这段代码有什么问题#include stdio.hvoid fun(int* p){p++}int main(){int line[10]int* pli

帮忙看看这段代码有什么问题

#include <stdio.h>

void fun(int* p)
{
p++;
}

int main()
{
int line[10];
int* p=line;

for(int i=0; i<10; i++)
{
*p=i;
fun(p);  //p++

}

for(i=0; i<10; i++)
printf("%d,", line[i]);
return 0;
}

我想输出0,1,2,3,4,5,6,7,8,9
函数传递的参数 ?
[解决办法]

#include <stdio.h>

void fun(int* &p)//加个引用就对了,这样就能改变p的地址,不加引用只能改变它所指向的值
{
p++;
}

int main()
{
int line[10];
int* p=line;

for(int i=0; i<10; i++)
{
*p=i;
fun(p);  //p++

}

for(int i=0; i<10; i++)
printf("%d,", line[i]);
return 0;
}

[解决办法]
fun只是对形参p的指针进行了自增,不会改变实参p的指针指向。调用时只是将实参p的值赋值给形参,两个然后互不相干。想要改变实参的值,传递其地址或者引用给函数就可以了

热点排行