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[0],表示向地址为p的内存区域赋值为a[0]。

p = a[0],把变量p的值改为a[0],这个语句正常应用中是错误的。变量p的值为内存地址,这样赋值会丢掉p原来指向的内存。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-11-06

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[0],表示向地址为p的内存区域赋值为a[0]。p = a[0],把变量p的...

c语言中*p=a与*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的区别是什么?
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语言比较困难的部分。指针...

*p=&a和*p=a的区别
1. int *p = &a; 这行代码定义了一个指向整型变量a的指针,并且将a的地址赋给了指针p。2. int *p = a; 这行代码定义了一个指针变量p,但是没有取a的地址,而是将a的值(3)赋给了指针p,这是不正确的,因为指针应该存储地址,而不是值。3. *p = &a; 这行代码尝试将a的地址赋给...

*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是...

c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!
区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。

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);

c语言中,定义int型变量a指针*p,那么,*p=&a和p=&a是什么区别?
定义int类型变量a和指针*p,则指针p存的是一个int型变量的地址,即可以表达为:p = &a;p存的是int型变量的指,即p指针指向地址的内容,所以可*p = a; 当你用*p = &a时,编译器会认为指针的值表示了地址,编译报错。如果你真想这样表示,也可以,只需要将地址强转为int型,即 p = (int)...

最近在自学C语言 请问一下 P=&a,和*p=a有什么区别么 (能举一下例子么...
P=&a表示,P这个变量(内存地址)里面存的是a这个变量(即,内存地址)的地址。P在声明的时候,已经有自己的地址了,这样的用法就是把P里面的值改了,是安全的。P=a表示,P这个变量(即,内存地址)里面存的那个地址,其所存储的值为a这个变量的值。如果P里面的值(注意,是P里面的值,不是*P...

相似回答