1楼:匿名用户
int *p;表示开设一个变量p用于存放地址
数组名即可理解为数组起始地址,也是数组第1个元素地址
int *p=a;与int *p; p=a;和int *p; p=&a[0];都是完成同样的工作:将数组起始地址放到变量p中。
2楼:gta小鸡
int *p;p=a;
3楼:回首鈉往事
最后一个肯定是不对的 *p内容是一个地址了,*p就是一个存放指针的指针了。
int *p=a和int *p=&a有什么区别?
4楼:匿名用户
int *p=&a 其实是两个语句 等价于 int *p; p=&a;
如果a是int型,int *p=a是错误的,正确的应该是 int *p; p=&a;
在定义的时候不能给p直接赋值整型,只能赋值int型地址 即 &a;
如果要给p指针指向的地址赋值,就可以*p=a;但不能在定义*p的时候直接赋整型。
5楼:
int a[10];
int *p=a; //与前面定义的数组名a类型相同,才可以这样赋值。
int a;
int *p=&a; //前面定义的a是普通变量,才可以这样赋值。
6楼:捧一米阳光
从基本定义来啊,int *p之后p为一个地址,*代表指向这个地址,int *p=&a等价于int *p,p=&a.这样p和&a都是地址,可以=。对于int *p=a,如果a为数组名,则也是个地址,与前面的就同了,如果a只是个一般变量,p是地址,*指向它,*p合起来就是一个数,如a是int型,就可看成两个数赋值,如果a不是int型,出错
7楼:匿名用户
我的理解
int a,*pa=&a;是正确的,相当于int a,*pa;pa=&a;即(int*)pa=&a。
而int a,*pa;* pa=&a;是错误的,因为*pa是值,&a是地址。
8楼:孤楠独碧
int *p就是申请一个int型的指针p,指针是用来保存地址的,所以&a就是取得a的地址赋给p。但是int*p=a的话,a必须是个地址,可以是指针,也可以使数组名。
9楼:不潇撒的渔
int* p 是定义个指针变量,&是取址符;
所以int* p=a,是定义个整型指针变量,并将a赋值给该变量;
int* p=&a,是将a的地址赋给该整型指针变量;
10楼:
我猜你的 a是int型的 假设定义了 int a = 12; 那么 int *p = a;编译是通不过的, 因为这里p初始化是把 int 型直接赋值给了 int*这是编译器不允许的, 而后者 int *p = &a, 是把变量a的地址赋值给指针p 意思是把a的地址存储在指针的内存空间中, 我们查询 *p 是根据指针p存储的地址去找到a的。
11楼:我的查出
int *p=a相当只要你给与a一个具体的值该指针将指到那儿
int *p=&a是&a中的a是你输入的值所在的位置而p指的是地址a的地址
12楼:匿名用户
int *p=a p指针的值(p代表的地址)是a
int *p=&a 表示p指针指向的是a的地址,p的值是a的地址
13楼:匿名用户
前者是将a的内容赋给指针p(也就是p指向a指向的数据)
后者是将a的地址赋给指针p(也就是p指向a)
14楼:匿名用户
int *p=a 表示p指针的地址是a
int *p=&a 表示p指针指向的是a的地址,p的值的a的地址
15楼:匿名用户
nt *p是定义一个指针 对应的该是地址
int*p=&a 则a是个指针或数组
int*p=&a 则a是个数据
16楼:胡晓帅
前者a的类型应该为int*,为负值操作,p的值等于a的值
后者a的类型应该为int,为取地址操作,p的值等于a的地址
17楼:天蝎
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语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!
18楼:匿名用户
区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。
int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。
19楼:匿名用户
因为p为指针变量,它初始化的值只能为地址,例如:
int b[10],a;
int *p1=b,*p2=&a; //这两种赋值都可以,注意,a,b都是地址,b是数组名,为数组的首地址,
若如下定义就是错误的:
int *p3=a;//a是简单变量,不是地址,而是值,类型不匹配,所以错了
20楼:步行者
int*p=a,首先a是一个指针,然后定义一个int型指针p,指向a
int*p=&a ,首先a是一个数值(比如之前定义它 int a=100),那么在定一个指针p,指向a=100中a的内存地址
注意两个式子放在一块写是错误的。不可能定义a为指针,又为数值
21楼:匿名用户
int *p是定义一个指针 对应的该是地址
int*p=&a 则a是个指针或数组
int*p=&a 则a是个数据
22楼:匿名用户
区别很大,第一个是把a赋给指针变量p,a变量必须存放的是指针值;第二条语句是把a变更本身的内存地址拿出来,赋值给指针变量p。
23楼:
a的类型不一样,第一个要指针类型的int变量,第二个是普通变量
24楼:匿名用户
第一个a必须也是指针才能对吧,第二个指向了a的地址。
25楼:浦小雨漆娜
*p=&a;是将a的地址赋值给*p,结果会是一个十六进制的数。
第二个是让p指向a的地址空间。*p的傎和a相等。
inta=2,*p;
*p=&a;
打印*p应该是一个地址值,很长一串,
p=&a;
打*p印结果会是2;
c语言中*p=&a和p=&a有什么区别
26楼:非常可爱
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);
扩展资料*p=&a的使用
int a, b, c;
int **p;
a = 5;
b = 6;
c = 7;
p = (int **)malloc(el_**t * sizeof(int *));
*p = &a;
*(p + 1) = &b;
*(p + 2) = &c;
for(int i = 0; i < el_**t; i++)printf("value is : %d\n", **(p + i));
27楼:育知同创教育
总得来说没区别,就是指针初始化的时间不同而已int *p = &a;//这里p声明的时候直接初始化它的值为变量a的地址
int *p;//声明指针p,p的值不确定可能指向任何地址,p = &a;//显示初始化使p指向a的地址
28楼:匿名用户
如果a都是基础类型, 而不是指针, 比如a为int那么 p=&a, 是把a的地址,赋值给p, p需要是int *类型。
而*p=&a 是把a的地址赋值给*p, p需要是int **类型。
注意 如果是int *p=&a;这种形式
是定义int *类型的p, 并给p初始化为&a。 等效于int *p;
p=&a;
还是给p赋值,而不是给*p赋值。
29楼:匿名用户
1.一般来说*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的地址。
30楼:匿名用户
对于指针来说,
*p = a[0],表示向地址为p的内存区域赋值为a[0]。
p = a[0],把
变量p的值改为a[0],这个语句正常应用中是错误的。变量p的值为内存地址,这样赋值会丢掉p原来指向的内存。
正确给内存地址赋值应该使用第一句。
31楼:天雨下凡
这样问说明你对指针的概念还不清楚,以下两种方式等价:
一、先声明指针,再给指针赋值
int *p,a;
p=&a;
二、定义指针的同时给它赋值
int a,*p=&a; //这里的*p可以解释成int * p,int *表示p是指向int型变量的指针
32楼:匿名用户
#include
intmain()
33楼:平野律子
举个例子吧: a是一个数组,它在内存中的初始地址比如说是0x11111111(简单假设),且a[0]的值是1,也就是说,内存0x11111111中存储的值是1。 于是,&a[0]=0x11111111,a[0]=1。
int *p; p=&a[0]; 指针p会有一个自己的内存地址,通常占用4个字节(比如初始地址是0x22222222)。p的值是&a[0],也就是说从0x22222222开始,后面4个字节中存储的值是0x11111111。 *p的值就等于p所指向的内存地址中存储的值,也就是a[0]。
所以*p等于1。 如果*p=&a[0]的话,很容易出问题。比如说int *p之后,p的初始值可能是0xcccccccc(debug版本)或者0x00000000(release版本)。
这个时候,如果你写一句*p=&a[0]的话,将会把0xcccccccc或者0x00000000内存之后4个字节的值变为0x11111111。 而0xcccccccc和0x00000000内存区通常是不可写的,这样就会报错。采纳哦
34楼:爵爷
在定义指针的同时让指针指向某个地址 如int *p=&a;不能直接使用*p=&a; p=&a;代表的是让p指向变量a的地址
35楼:百度用户
*p=&a;是将a的地址赋值给*p,结果会是一个十六进制的数。 第二个是让p指向a的地址空间。*p的傎和a相等。
int a=2,*p; *p=&a; 打印*p应该是一个地址值,很长一串, p=&a; 打*p印结果会是2;
36楼:
有啊,*p是个指针,他储存的是一个变量的地址。你把a[0]里的数据赋给他,是储存在那个变量中,不是在存*p中。另一个p是个变量,a[0]中的数据时存在p中
例如:int *p;
p=&b;
*p=a[0];
b==a[0] 值是放在b中
另一个是放在p中 ,不同的
int p下面等价的语句是,int *p[4];下面等价的语句是
1楼 匿名用户 int p 4 是一维一级指针数组,p是指针数组名,这个数组有4个元素,每个元素都是int行指针 int p 4 是一维数组,p是数组名,这个数组有4个int型元素int p是二级指针,即指向一级指针的指针int p 4 我也不懂 int p 4 是指向一维数组的指针,即指向类型为i...
APEC的A,P,E,C分别是什么意思!比如A是Asia-P
1楼 百度用户 apec 亚太经贸合作组织 简称亚太经合组织 the asia pacific economic cooperation apec峰会每个字母a p e c 分别是什么意思 2楼 匿名用户 中文名 亚太经济合作组织 外文名 asia pacific economic cooperat...
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只有一个区别就是...