关于int*p=&a与int*p;p=&a的解惑

 

关于int*p=&a与int*p;p=&a的解惑

在学习c语言解惑中遇到这个问题,其中对int *p=&a的写法百思不得其解,查了网上资料得出关于int*p=&a与int*p;p=&a的解惑

这样的理解是错误的

正确理解是

一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2.*p=a的意思:将a的值赋给p指针指向的地址的值;3.p=&a的意思是:将a的地址赋给指针p;4.区别:*p是一个值;p是一个地址;两者完全不相同。5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是指针,可以理解为所指向的值的地址,*p就是取p指针指向的地址的值,&a就是取a的地址。

扩展资料:指针的两种含义:一是作为数据类型,二是作为实体1.指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。指针一般出现在比较底层的程序设计语言中,如C语言。高层的语言如Java一般避免用指针,而是引用。2.指针作为数据类型,可以从一个函数类型、一个对象类型或者一个不完备类型中导出。从中导出的数据类型称之为被引用类型。指针类型描述了一种对象,其值为对被引用类型的实体的引用。

难点在于指针有两种含义,一种是作为取值,一种是作为数据类型,而在int中就是数据类型类似于(int*)p=&a。即是p的值是a的地址。与int*p;p=&a的含义相同