首先来说一下*和&,为了便于理解你可以认为,这里*是取内容,&是取地址。
我不讨论它们的区别,因为*p=&a这个形式一般是错的,常用的是p=&a。
下面比较*p=a和p=&a。看图,图很详细。
显然它们是等价的。
然后比较*p=&a和p=&a;
则这两种都是对指针变量的赋值,赋值有两种形式
①先定义后赋值
int a=3,*p;(定义指针变量*p)
p=&a;(对指针变量取地址)
②定义变量的同时赋值
int a=3,*p=&a
也就是说在赋值时,
int *p=&a
相当于
int *p,
p=&a
它们的区别其实就是
int *p=&a是同时定义*p并对赋值p(即a的地址赋给P),而p=&a,只是对P赋值,没有定义指针变量。
但要注意,只有在同时定义赋值时“*p=&a”这种写法才是对的
其他情况下不要用*p=&a,这种形式,因为根本就不对,如下图。我之前一直的疑问是为什么赋值时*p=&a就不算错了?后来老师给的解释是这种形式只有在上面那种情况下成立,其他的情况确实都是错的。
* p=& a和p=& a有什么区别?
我不讨论它们的区别,因为*p=&a这个形式一般是错的,常用的是p=&a。下面比较*p=a和p=&a。看图,图很详细。显然它们是等价的。然后比较*p=&a和p=&a;则这两种都是对指针变量的赋值,赋值有两种形式 ①先定义后赋值 int a=3,*p;(定义指针变量*p)p=&a;(对指针变量取地址)②定义变量的同时...
*p=&a和*p=a的区别是什么?
1、一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2、*p=a的意思:将a的值赋给p指针指向的地址的值。3、p=&a的意思是:将a的地址赋给指针p。4、区别:*p是一个值;p是一个地址;两者完全不相同。5、*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;...
*p=&a和*p=a的区别是什么?
1、一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2、*p=a的意思:将a的值赋给p指针指向的地址的值。3、p=&a的意思是:将a的地址赋给指针p。4、区别:*p是一个值;p是一个地址;两者完全不相同。介绍 指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针...
c语言中*p=&a和p=&a有什么区别
c语言中*p=&a和p=&a只有一个区别就是指针初始化时间不同。p=&a:P是1维指针;p=&a:P是2维指针;p=&a示例:inta;int*p;a=5;p=&a;printf("valueis:%d.",*p);
int *p=&a和*p=a有什么区别
1.一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2.*p=a的意思:将a的值赋给p指针指向的地址的值;3.p=&a的意思是:将a的地址赋给指针p;4.区别:*p是一个值;p是一个地址;两者完全不相同。5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是...
*p=&a和*p=a的区别
1. int *p = &a; 这行代码定义了一个指向整型变量a的指针,并且将a的地址赋给了指针p。2. int *p = a; 这行代码定义了一个指针变量p,但是没有取a的地址,而是将a的值(3)赋给了指针p,这是不正确的,因为指针应该存储地址,而不是值。3. *p = &a; 这行代码尝试将a的地址赋给...
C语言中,p=&a和*p=&a有什么区别
p=&a;是将a的地址赋值给*p,结果会是一个十六进制的数。第二个是让p指向a的地址空间。*p的傎和a相等。int a=2,*p;p=&a;打印*P应该是一个地址值,很长一串,p=&a;打*P印结果会是2;
*p=&a *p=&a p=&a 各是什么意思啊 谢谢
p=&a 是将a的地址传给指针p指向的变量 p=&a 是将a的地址传给指针p 比如p指向x,p=0x00000000,a的地址是0x00000002:第一种情况:p不变,x=0x00000002;第二种情况:p变成0x00000002。
c++里面*p=&a和p=&a有什么区别
当然有区别。一般情况下,*p=&a说明p是二级指针,而p=&a说明p是一级指针。
*p=&a与p=&a的区别
p=&a 与 p=&a 都是对指针P赋值,不过第一个是写在初始化的时候,第二个是写在其他赋值的时候。至于答案的第二行输出3 2,那是因为printf("%d %d\\n",*p,(*q)++);这句(*q)++实际上是给a++了,也就是a的值是3了,printf填值是从右向左的,而且(*q)++的++在后面;所以“%d %d...