一级指针对整数,整数数组,字符数组传参的几种方式:
①void test(int p)
{
}
int main()
{
int a=10;
intp=&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; //定义一个指针变量
intpp=&p //定义一个二级指针变量,该指针指向一级指针变量p
test(pp)
}s函数指针
1.函数本质是代码块,代码块本质是会包含很多组代码,也就决定了会包含一个地址序列,函数名,代表的是代码块的起始地址。
函数名和&函数名是一样的
类型:void(*p)()=&fun
指针传参的理解
最新推荐文章于 2024-07-10 07:40:43 发布