
C语言中关于指针的问题?
voidfind1(chararray[],charsearch,char*pa){inti;for(i=0;*(array+i)!=0;i++){if(*(array+...
void find1(char array[], char search, char * pa)
{
int i;
for (i=0;*(array+i)!=0;i++)
{
if (*(array+i)==search)
{
pa=array+i;
break;
}
else if (*(array+i)==0)
{
pa=0; //与fun2中(* pa)=0,在程序里面对输出结果有什么不同?
break;
}
}
}
void find2(char array[], char search, char** pa)
{
int i;
for (i=0;*(array+i)!=0;i++)
{
if (*(array+i)==search)
{
(*pa)=array+i;
break;
}
else if (*(array+i)==0)
{
(*pa)=0; //与fun1中pa=0,在程序里面对输出结果有什么不同?
break;
}
}
}
请大侠帮小弟解释一下上面的疑问,小弟菜鸟。谢谢大侠了!!! 展开
{
int i;
for (i=0;*(array+i)!=0;i++)
{
if (*(array+i)==search)
{
pa=array+i;
break;
}
else if (*(array+i)==0)
{
pa=0; //与fun2中(* pa)=0,在程序里面对输出结果有什么不同?
break;
}
}
}
void find2(char array[], char search, char** pa)
{
int i;
for (i=0;*(array+i)!=0;i++)
{
if (*(array+i)==search)
{
(*pa)=array+i;
break;
}
else if (*(array+i)==0)
{
(*pa)=0; //与fun1中pa=0,在程序里面对输出结果有什么不同?
break;
}
}
}
请大侠帮小弟解释一下上面的疑问,小弟菜鸟。谢谢大侠了!!! 展开
2个回答
展开全部
我只想说一点:
对于形参,无论它是什么类型的变量,只要改变的是形参变量本身,则就与实参没有任何关系!
如果形参是指针类型,且函数中,修改的内容是指针所指向的地址中的内容,而不是指针变量本身,则实参所对应的数据就会发生变化。
find1中改变的就是形参pa本身
find2中改变的是形参pa所指向的地址中的内容
对于形参,无论它是什么类型的变量,只要改变的是形参变量本身,则就与实参没有任何关系!
如果形参是指针类型,且函数中,修改的内容是指针所指向的地址中的内容,而不是指针变量本身,则实参所对应的数据就会发生变化。
find1中改变的就是形参pa本身
find2中改变的是形参pa所指向的地址中的内容
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询