c语言关于指针问题
来源:百度知道 编辑:UC知道 时间:2024/09/24 22:13:22
假设int * p1,int * p2
int p
P是变量,P1和P2是指针变量。
我的问题: P=p1吗,能把P1值赋给P吗。能详细说明原因吗。
int p
P是变量,P1和P2是指针变量。
我的问题: P=p1吗,能把P1值赋给P吗。能详细说明原因吗。
不行
你得知道一个指针 p1 中储存的是什么
p1里储存了一个地址,P是int 。不可能吧一个地址赋值给P。除非P也是一个指针。
P=*p1是对的。因为*符号是取指针变量指向变量的值。但是这样直接用是不行的。因为p1没有指向任何东西。如果这样就可以了。
main()
{
int p, *p1;
p=10;
p1=&p;
int P;
P=*p1;
return 0;
}
这样就可以了。
另外
int *p;
p=15 这样的也是行不通的,因为指针不能储存一个int,但是如果指针已经指向某个变量就可以 *p =15 这样操作了。
int P = 15;
int *p =&P;
这样以后,你试试 *p的值也是15.你可以用*p=16这样的语句,然后看看P的值是不是也变成了16?所以,指向后*p就可以看做指向的变量P了。
qq107395975
可以。
首先p1没有赋初值,怎么赋给p,如果可以赋值也应该是p=*p1;因为*p1才是p1指向的内存内的内容,而p1只是其内存地址,如果直接p=p1;咋有点像赋地址呢。。。(当然这样类型是不对的啊)
通常会让p1指向p,这样用比较多的,p1=&p;
int * p1,int * p2;
int p;
这样定义 p1 p2 是整型 指针变量,p 是整型变量。
P=p1 这样的赋值是不对的
正确地赋值方法是
p = *p1;
通过 * 运算符 把 指针p1 所指地址存储的值赋给变量 p。
以下内容仅供参考,如果要使用,要在理解的基础上。
来硬的
这样
p = (int)p1;
这样p 里就是 p1 存储的具体数值,就是地址了。
不能
如果要达到你的