指针变量与普通变量的区别
普通变量是直接传值
指针变量传递地址,指针内保存的是内存地址,指针有类型,对指针进行解引用操作可以将指针内的内存地址的二进制数据作为指针对应的类型来操作
1、传递参数时:对于指针,&p传递的是指针的地址
p传递的是指针所指的变量的地址,也就是变量的地址。
2、int *p 和 int p有什么区别
int p和int *p在为函数传参时,对于int p,只传递它的副本,在函数内部改变p的值不能改变
p在函数外面的值。
而对于*p,可以通过*p=X,来改变它之前所指元素的值,函数外边的值也改变。
例如 int *p,a=4; p = &a; fn(p){*p = 5;} 则调用函数后,a=5。
指针变量和变量指针的异同
指针和普通变量的区别,最简单的思考应该按整数的两个不同用法着眼:
整数可以表示序号和数量----数量的概念不必说了,但序号的概念人人都懂但不透彻。
2012表示年----这是序号,它的下一年是2013,即2012+1可得2013,但这里的1是什么?是公元1年吗----是序号还是数量?
2012是今年,2013是明年,两者能相加吗?序号+序号是什么?
指针是什么?指针是严格意义上的序号----存储位置的编号!
所以指针+数量为指针----成立
反之指针-指针为数量----成立
指针+指针------不成立
C和C++中源代码级对存储数据的访问有两种方法:按名字和按指针----就象在大街上按名字(类似变量名)或按门牌号(类似地址)访问商店一样。
1、指针变量是变量的一种,指针变量的值是地址(也是整数),普通变量的值是整数、实数或者其他类型。指针变量的主要作用是修改其他函数的局部变量和访问数组。指针变量需要额外的空间存放地址,由于指针变量是间接访问所指对象,所以比起直接用普通变量名字访问所指对象而言,速度稍慢。
2、例如:int a=5; int *p = &a;
指针p是一个整型指针变量,里面存的是一个地址,这个地址是a的地址。通过取值运算符*就可以用p访问a。指针变量使用起来非常灵活,一个指针变量只占四个字节,但是它可以访问结构体,链表,数组等多数据集合,而且在访问这些变量的时候是对内存直接访问,执行效率高。
指针变量是变量,用于存放指针,或者说存放地址
变量指针是指针,是变量的地址
指针变量可以存放变量的指针,存放了变量的指针的指针变量可以访问那个变量的存储区,间接地修改或读取它的值
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!