C语言函数调用指针并进行修改,但是主函数的指针地址未更改(strchr函数)

电脑杂谈  发布时间:2020-03-19 20:09:16  来源:网络整理

strchr函数原型_c strchr()函数的结果_strchr函数

C语言函数调用指针并进行修改,但是主函数的指针地址未更改(strchr函数)

char * my_strchr(char const * str,int ch)

{

char *标志= NULL;

for(;(str=strchr(str,ch))!=NULL;str++)flag=str;
return flag;

strchr函数原型_c strchr()函数的结果_strchr函数

}

int main()

{

char * str =“ hello”;

printf(“%x \ n”c strchr()函数的结果,my_strchr(str,'l'));

strchr函数_c strchr()函数的结果_strchr函数原型

printf(“%x \ n”,my_strchr(str,'h'));

返回0;

}

输出: 40306b

403068

c strchr()函数的结果_strchr函数_strchr函数原型

my_strchr()函数用于输出最后一次出现ch的地址.

但是! !!! My_strchr()函数在使用时未移动str的位置,指向地址“ l”,然后将str的位置移至“ l”,为什么第二个调用查找“ h”c strchr()函数的结果,仍可以使用它?

||最喜欢的||

2 c doggy

3个答案

strchr函数_c strchr()函数的结果_strchr函数原型

按喜欢排序

要更改主函数的指针地址,必须传递辅助指针或对主指针的引用.

传递一级指针只能修改指针指向的值,而不能修改指针本身.

在这里,仅main函数中的str和my_strchr参数指向相同的内存,但是两个str不是相同的指针.

因此,如果您在my_strchr上执行++,则不会影响主函数的str.

||

qq423399099


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-145197-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...