c语言中intpa与intpa有什么区别求大侠帮忙

2021-03-05 13:11:43 字数 5072 阅读 5949

1楼:匿名用户

区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。

int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。

2楼:匿名用户

因为p为指针变量,它初始化的值只能为地址,例如:

int b[10],a;

int *p1=b,*p2=&a; //这两种赋值都可以,注意,a,b都是地址,b是数组名,为数组的首地址,

若如下定义就是错误的:

int *p3=a;//a是简单变量,不是地址,而是值,类型不匹配,所以错了

3楼:步行者

int*p=a,首先a是一个指针,然后定义一个int型指针p,指向a

int*p=&a ,首先a是一个数值(比如之前定义它 int a=100),那么在定一个指针p,指向a=100中a的内存地址

注意两个式子放在一块写是错误的。不可能定义a为指针,又为数值

4楼:匿名用户

int *p是定义一个指针 对应的该是地址

int*p=&a 则a是个指针或数组

int*p=&a 则a是个数据

5楼:匿名用户

区别很大,第一个是把a赋给指针变量p,a变量必须存放的是指针值;第二条语句是把a变更本身的内存地址拿出来,赋值给指针变量p。

6楼:

a的类型不一样,第一个要指针类型的int变量,第二个是普通变量

7楼:匿名用户

第一个a必须也是指针才能对吧,第二个指向了a的地址。

8楼:浦小雨漆娜

*p=&a;是将a的地址赋值给*p,结果会是一个十六进制的数。

第二个是让p指向a的地址空间。*p的傎和a相等。

inta=2,*p;

*p=&a;

打印*p应该是一个地址值,很长一串,

p=&a;

打*p印结果会是2;

在c语言中,int *p,a; *p=&a,和p=&a有什么区别?

9楼:天雨下凡

这样问说明你对指针的概念还不清楚,以下两种方式等价:

一、先声明指针,再给指针赋值

int *p,a;

p=&a;

二、定义指针的同时给它赋值

int a,*p=&a; //这里的*p可以解释成int * p,int *表示p是指向int型变量的指针

10楼:匿名用户

#include

intmain()

{int*p,a=0xaa;//声明int指针

int *p=a和int *p=&a有什么区别?

11楼:匿名用户

int *p=&a 其实是两个语句 等价于 int *p; p=&a;

如果a是int型,int *p=a是错误的,正确的应该是 int *p; p=&a;

在定义的时候不能给p直接赋值整型,只能赋值int型地址 即 &a;

如果要给p指针指向的地址赋值,就可以*p=a;但不能在定义*p的时候直接赋整型。

12楼:

int a[10];

int *p=a; //与前面定义的数组名a类型相同,才可以这样赋值。

int a;

int *p=&a; //前面定义的a是普通变量,才可以这样赋值。

13楼:捧一米阳光

从基本定义来啊,int *p之后p为一个地址,*代表指向这个地址,int *p=&a等价于int *p,p=&a.这样p和&a都是地址,可以=。对于int *p=a,如果a为数组名,则也是个地址,与前面的就同了,如果a只是个一般变量,p是地址,*指向它,*p合起来就是一个数,如a是int型,就可看成两个数赋值,如果a不是int型,出错

14楼:匿名用户

我的理解

int a,*pa=&a;是正确的,相当于int a,*pa;pa=&a;即(int*)pa=&a。

而int a,*pa;* pa=&a;是错误的,因为*pa是值,&a是地址。

15楼:孤楠独碧

int *p就是申请一个int型的指针p,指针是用来保存地址的,所以&a就是取得a的地址赋给p。但是int*p=a的话,a必须是个地址,可以是指针,也可以使数组名。

16楼:不潇撒的渔

int* p 是定义个指针变量,&是取址符;

所以int* p=a,是定义个整型指针变量,并将a赋值给该变量;

int* p=&a,是将a的地址赋给该整型指针变量;

17楼:

我猜你的 a是int型的 假设定义了 int a = 12; 那么 int *p = a;编译是通不过的, 因为这里p初始化是把 int 型直接赋值给了 int*这是编译器不允许的, 而后者 int *p = &a, 是把变量a的地址赋值给指针p 意思是把a的地址存储在指针的内存空间中, 我们查询 *p 是根据指针p存储的地址去找到a的。

18楼:我的查出

int *p=a相当只要你给与a一个具体的值该指针将指到那儿

int *p=&a是&a中的a是你输入的值所在的位置而p指的是地址a的地址

19楼:匿名用户

int *p=a p指针的值(p代表的地址)是a

int *p=&a 表示p指针指向的是a的地址,p的值是a的地址

20楼:匿名用户

前者是将a的内容赋给指针p(也就是p指向a指向的数据)

后者是将a的地址赋给指针p(也就是p指向a)

21楼:匿名用户

int *p=a 表示p指针的地址是a

int *p=&a 表示p指针指向的是a的地址,p的值的a的地址

22楼:匿名用户

nt *p是定义一个指针 对应的该是地址

int*p=&a 则a是个指针或数组

int*p=&a 则a是个数据

23楼:胡晓帅

前者a的类型应该为int*,为负值操作,p的值等于a的值

后者a的类型应该为int,为取地址操作,p的值等于a的地址

24楼:天蝎

1)int *p=a;

举例:int *p=100;

p是一个指针变量,将一个常量赋给一个指针变量,p等于地址0x00000064,即p是指向某个数的指针变量,该数的地址是0x00000064,一般实际中没这么用;跑下程序:

2)int *p=&a;

举例:int a=100; int *p=&a;

a是一个变量,p就是指向a的指针变量,即p等于a的地址;跑下程序:

这个c语言中 *p=&a 和 int*p p=&a 的区别

25楼:

总得来说没区别,就是指针

初始化的时间不同而已

int *p = &a;//这里p声明的时候直接初始化它的值为变量a的地址

int *p;//声明指针p,p的值不确定可能指向任何地址,p = &a;//显示初始化使p指向a的地址

26楼:匿名用户

第一个是给指向的变量赋值为的地址,第二个是是一个指针,它指向变量a

c语言中 int*p[4] 和 int(*p)[4]的区别是什么?

27楼:匿名用户

int*p[4]是指针的数组

,也就是说它

是一个数组,数组里存的是一个个的指针

int(*p)[4]是数组的指针,也就是说它是一个指针,指向的是一个数组。指针指向的类型会影响到指针加减运算时地址的位移。比如说有一个数组 int a[4],加上取址运算符 &a,这个表达式的类型就是指向数组的指针,可以这样赋值 p = &a;。

一般用于向函数传递二维数组的时候使用这种类型,这时还有一种更直观的写法

void matrix_sum(int matrix_a[4], int matrix_b[4])

这种写法和

void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4])

是等价的。

28楼:望阑珊将尽

结合性不一样:前者是指针数组,为4个int指针的数组,有4个元素;后者是数组指针,为一个指针,类型为指向包含4个int类型元素的一维数组的指针。

c语言中,定义int型变量a指针*p,那么,*p=&a和p=&a是什么区别?

29楼:匿名用户

只能int *p=&a或者int *p;p=&a;

30楼:匿名用户

定义int类型变量a和指针*p,则指针p存的是一个int型变量的地址,即可以表达为:p = &a;

*p存的是int型变量的指,即p指针指向地址的内容,所以可*p = a; 当你用*p = &a时,编译器会认为指针的值表示了地址,编译报错。如果你真想这样表示,也可以,只需要将地址强转为int型,即

*p = (int)&a;

31楼:天河宙

你要先int *p然后才能p=&a

32楼:匿名用户

p是地址 &a是地址,*p是p地址对应的值

33楼:白花恋歌

去看 c和指针 这本书,有非常详细的关于指针的几乎所有的问题,&a表示取变量a的地址,根据声明,*p表示访问指针所得到的整形变量,一般情况下地址不能赋值给整形变量,如果非要这么做,只能使用强制类型转换

34楼:匿名用户

*p 是错的。。。。

c语言中int a 1,b 2,c c 1.0 b a输出结果为什么

1楼 匿名用户 结果是c的值是0 因为1 0 b 都会转换位浮点型,结果是0 5 0 5 a 也是会把a转为浮点型,结果是0 5 而c是整形,会对右边运算的结果取整,所结果就是0了。 假如 int a 1 b 2 c 3 表达式a b c的值是1还是0 为什么? 2楼 岔路程序缘 在c语言中,1代表...

c语言中有时会定义p a是什么意思不应该是p a吗

1楼 夏成 int a int p a 相当于int p p a 记住就行了 除了定义的时候,其他时候 p 正常情况 只能等于内容 a的值 2楼 匿名用户 int a int p a 或者int p p a c语言中 p a和p a有什么区别 3楼 非常可爱 c语言中 p a和p a只有一个区别就是...

C语言中,a b与b a有什么区别么

1楼 匿名用户 没区别, 是恒等于,不存在赋值问题,单纯比较,怎么写都行,但是 号就不一样了,是右边赋值给左边 2楼 育知同创教育 写法几乎没有什么区别。前后顺序不影响的。 3楼 匿名用户 双等号 是比较运算符, 没有什么区别 4楼 幻世封神 没什么区别,看个人习惯了 请采纳吧 5楼 研凌工控电脑 ...