C语言 ---(*/**)指针形参

借鉴于(https://blog.csdn.net/a3748622/article/details/79286974)
做总结用,
如有冒犯,可评论删除。

一、(*)指针形参(数值计算)

来源,爱FC的捷哥(1)AddNum1没有改变Num1的值:(int data)

  主函数中的代码“ AddNum1(Num1); ”。实质上,它将Num1的值赋值给了子函数的形参“ data ”。【形参本身不开辟空间,被实参赋值后才开辟,因此"&Num1 != &data"】。
  所以函数中的其他代码,是针对“ data ”进行运算的,而“ Num1 ” 除了把它自身的值传递给“ data ”外没有其他任何操作。

(2)AddNum2将Num1的值自增了1:(int* data)

  AddNum是将“&Num1”赋值给指针变量“ data ”,而“ * ”指向 “ Num1 ”。
在这里插入图片描述

二、(**)指向指针 的指针形参(内存分配)

  主函数声明了一个指向0x00000001地址的char型指针pMemory,并通过子函数申请内存,将申请得到的地址赋值给pMemory。
来源,爱FC的捷哥
(1)GetMemory1();并不能将地址赋值给pMemory

  类似于“ AddNum1(); ”,但为什么这次的形参带有“ * ”却不能填写内容呢?可能是因为这个内容是地址,而指针本身不能保存地址。

(1)GetMemory2();成功将申请得到的地址赋值给pMemory

  此处" * pAddr "不仅仅是指针,还算作指针变量。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值