您好、欢迎来到现金彩票网!
当前位置:大发体育在线 > 址传 >

C语言:哪些是值传递哪些是地址传递?

发布时间:2019-07-07 19:24 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部C语言没有真正意义的地址传递,即使传递指针也只是传递的指针的值,

  实际上在point 函数内是产生了另一个名为p的指针, p 指向0x ffff ( 这个p 只是和main函数的p值相同而已,不是同一个。所以传递指针其实是传递的地址的值,还是值传递)

  point(char *p){ p+=3;} 看,这个的确将p向后移动了3个char的位置。但是,当函数返回后,被加了3的指针变量p就“消失”(没有定义了)了。

  虽然你在主函数中调用point函数时也用了p,但主函数中p与函数point(char *p)中的变量p不是一个变量(只是恰巧同名)。

  地址传递的一个约定是:如果形参叫p,函数体内只能用*p不能直接用p。否则没有预期的效果。所以这里算不上地址传递

  展开全部你传递的是地址,被调函数中,你已经找到人家门,可以布置了一番,但你什么都没做,就回来了,亲,你想返回什么?

  而且返回到主调函数中时,主调函数中的p并没有变化,,所以输出的是a,,有什么不对吗,,,

  指针也是一个变量。在作为函数参数的时候也是把副本传进去,所以,对原指针的值(一个地址)是没有影响的,但可以改变指向的值。在涉及到指针作为参数的时候,要用指向指针的指针或者引用去解决。

http://usdiclofenacs.com/zhichuan/194.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有