指针传参的理解

一级指针对整数,整数数组,字符数组传参的几种方式:
①void test(int p)
{
}
int main()
{
int a=10;
int
p=&a;
test§;
② void test(int *p)
{
}
int main()
{
int a=10;
test(&a);
③ void test(int *p)
{
}
int main()
{
int a[]={1,2,3,4};
int *p=a;
test§;
}
④void test(int *p)
{
}
int main()
{
int a[]={1,2,3,4};
test(a);
}
⑤void test(char *p)
{
}
int main()
{
char str[] = “hello”;
test(str);
}
⑥void test(char p)
{
}
int main()
{
char str[] = “hello”;
char p = str;
test§;
}
注意:在main函数中定义的指针p和传参进去的p是两个变量,但是他们的内容相同,都指向该指针所指向的数组或整数!!!!
二级指针传参
void test(int
_pp)
{
// 注意:1.&_pp和&pp地址不一样,他们是两个变量,和上面一级指针理解方式相同。
2._pp和pp是两个变量,他们的指向是相同的,都指向一级指针变量p。
3.*pp是进行了一次解引用,相当于p,至于是p的内容还是空间要看p对应的是左值还是右值的问题。
4.pp是进行了两次解引用,相当于a,至于是a的内容还是空间要看a对应的是左值还是右值的问题。
}
int main()
{
int a=10;
int *p=&a; //定义一个指针变量
int
pp=&p //定义一个二级指针变量,该指针指向一级指针变量p
test(pp)
}在这里插入图片描述s函数指针
1.函数本质是代码块,代码块本质是会包含很多组代码,也就决定了会包含一个地址序列,函数名,代表的是代码块的起始地址。
函数名和&函数名是一样的
类型:void(*p)()=&fun

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值