C语言指针问题

pyshanfeng 2021-03-18 12:21:13


函数fun()中不是已经通过指针s把s所指的值改变了吗?为什么主函数中又没改变呢?
...全文
122 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-03
  • 打赏
  • 举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
真相重于对错 2021-03-18
  • 打赏
  • 举报
回复
指针当参数只能修改它指向的内存地址里面的东西,而不能修改指针的指向。
自信男孩 2021-03-18
  • 打赏
  • 举报
回复
main函数的s和fun函数里的s是两个独立的变量。所以main里的s在经过fun函数之后是没有变化的,还是指向a的。

因为实参s把a的地址传给fun函数的形参s,然后形参没有对a做任何操作;只是形参s又指向了calloc申请的空间,并且把a,b数据内容相加给了s(形参),那么这个s和main函数里的s什么关系呢?calloc申请的空间需要手动释放~

如果fun第三参数传递的是double **s,实参是&s,那么main里的s指向的calloc申请的空间,*s是相加之和
qzjhjxj 2021-03-18
  • 打赏
  • 举报
回复
在fun()函数体内,*s 所指向的是 s = (double *)calloc(1,sizeof(double))所生成的空间,并没按我们所想的那样,指向a[]数组的空间。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧