C的学习7(指针)

指针的值传递

#include<stdio.h>



void plus(int a)
{

	a++;
	printf("调用函数a = %d\n",a);
	printf("调用函数中a的地址为%d\n", &a);


}
void plus2(int* p)
{
	++ *p;//= *p + 1;
	printf("plus2 p指向的地址为%d\n", p);    //p指向的地址
	printf("p解引用的值为%d\n", *p);

}
int main(void)
{
	int a = 5;
	plus(a);
	printf("a = %d\n", a);
	printf("主函数中a的地址为%d\n", &a);
	plus2(&a);
	printf("a = %d\n", a);


	return 0;
}
/*
调用函数a = 6
调用函数中a的地址为12058092
a = 5
主函数中a的地址为12058304
plus2 p指向的地址为12058304
p解引用的值为6
a = 6

C:\Users\Administrator\Desktop\vs\Project6\Debug\Project6.exe (进程 17496)已退出,返回代码为: 0。
若要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口...



*/

自上而下的是,堆,栈,全局变量,代码文本。

函数都在栈,形参的生命周期旨在调用函数里面全局变量的生命周期是全局的

函数调用完毕在栈分配的空间也会消除,只有主函数的空间是不会被消除的 

而地址是内存中变量储存的位置,而指针就是储存了地址所以可以直接操纵内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值