指针是什么
1 int * p;
重点:大家肯定知道 int i 或int p这是用来定义一个int类型的变量i,p。那么类比,*int * p则是int 类型的变量p.这里的变量p可以保存其他变量的地址!!!
即 变量名还是 P 类型是int *
2 什么是指针:指针就是地址, 地址就是指针。指针变量是存放内存单元地址的变量。指针的本质是一个操作受限的非负整数(不能加乘除,只能减)
3对下面代码的理解,这几句非常常见。
int *p; 这个变量p可以保存其他变量的地址(上面说过)
int i; 不用解释吧
i=10; 变量要初始化,不然会是一个随意的数,不能正常使用。
P = &i; i的地址赋值给p,前面说过P可以保存其他变量的地址。
理解 1 p保存了i的地址,p指向i。
2 修改p的值不影响i的值,修改i的值不影响p的值。
3 *p 就是 i 是一样的可以互换, *p=i
下面是函数调用时的指针
void f (int * p)//这里上面说过了,变量名是i,但是类型是int *,可以保存其他变量的地址。
{
*p=100;//上面也说过,*p就是i,i就是*p
}
int main()
{
int i=9;//这是一个普通的定义和赋值
f(&i);//这里要是调用函数,用&i,把i的地址传递给函数的参数p
cout<<"i"<<i;//结果应该是100
return 0;
}
重点:函数调用时用到的指针
1 主函数中调用,必须用&i,f(&i)把i的地址传递给了被调函数的参数p
2 被调函数的参数必须是(int * p)名字是p,类型是int*
3 被调函数中,必须是 p=。。。来使用,即, 形参变量名,因为*p=i
其实指针就那么几句话,我写了好几遍,第一次总结可能不够精简。希望大家理解。
最后,特别感谢郝斌老师
希望对大家有所帮助,如果有用,感谢大家 点赞 支持一下。
如果你还没有理解,请看这一篇文章指针是什么?指针怎么理解?怎么理解指针?最简单最通俗的讲解,即使不理解我的话,记住之后也会理解代码,非常有效,希望对你有帮助!升级版
版权声明:本文为shangxianjiao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。