编程论坛
注册
登录
编程论坛
→
C++教室
求助:指针定义的一个小问题
xuexi005
发布于 2012-09-18 16:13, 312 次点击
int array[10],*p=array;
等价于
int array[10],*p;
p=array;
问,编译上面两个都合法,但不理解*p指针变量可以直接与地址相等。
应该是p=array才对啊?
4 回复
#2
zklhp
2012-09-18 16:18
以下是引用
xuexi005
在2012-9-18 16:13:53的发言:
int array[10],*p=array;
等价于
int array[10],*p;
p=array;
问,编译上面两个都合法,但不理解*p指针变量可以直接与地址相等。
应该是p=array才对啊?
但不理解*p指针变量可以直接与地址相等。
p是指针变量
我感觉 这个貌似就是一个定义的时候赋初值和定义之后再赋值的问题 没看出这里面有啥深刻含义
#3
眼底星空
2012-09-18 17:53
“问,编译上面两个都合法,但不理解*p指针变量可以直接与地址相等。”
这句话的理解有误吧。
p才是指针变量,是p的值和地址相等,而不是*p。
int *p=array; 这句话这样理解吧:p是int*类型,p的值是数组array的首地址。
#4
pangding
2012-09-18 18:34
回复 2楼 zklhp
就是没啥深刻含义。
声明指针的语法就是 int *p,如果愿意赋初值,后面再跟一个 =array 就行了。从而变成,int *p = array。
如果就是声明一下,后一步再赋值就是第二种写法。第一种代码只是方便人写而已(也就是少打了一次 p,但代码更紧凑)。
#5
xuexi005
2012-09-19 08:09
二楼跟我一样的困惑,版主简单的说是乌龟的屁股,规定而已
1