刚学C语言,指针不是很懂。望指点一下。 1、int a=5,*p=a; 2。int b=5,*p=b; 3. int c=5,p=&c;

这三种我不是很懂。好像搞混了的。然后希望解释一下。详细点。因为我弄的很糊涂、

第1个回答  2011-02-22
1 先定义变量a 并将a值赋为5,接着将指针p所指地址的变量置为a(5)此后对p赋值的操作与a无关
2是定义指针p的同时将p指向b,对p的赋值相当于对b赋值
3 是先定义变量c并赋值为5,接着将指针p指向变量c(此后对p的赋值操作相当于对c操作,
如*p = 12相当于c=12)

2,3可以不过应完整点(只需先定义指针即可)
(对2:int *p; int b = 5; *p = b)
(对3:int *p; int c = 5; p = &c)
第2个回答  2011-02-22
*p=_____
这是给指针p指向的变量赋值。
比如p只想变量m
*p=a等价于 m=a
p=&c p指向变量c
*p=&c 等价于m=&c 把c的地址付给m本回答被提问者采纳
第3个回答  2011-02-22
指针就是地址,1,2是一样的,a 是整形,*p是指针,指向a存放的地址

c=5 p= &c,也是一样,&是取地址追问

不是。2.写错了是*p=&b;

追答

定义里的指针赋值是要给地址值的,所以你的int a=5, *p=a;是不对的,应该这样*p=&a;就是你修改的2里面那样。3也是不行的,&c是取c 的地址,是不能这样直接给int p变量的。

刚学C语言,指针不是很懂。望指点一下。 1、int a=5,*p=a; 2。int b...
2是定义指针p的同时将p指向b,对p的赋值相当于对b赋值 3 是先定义变量c并赋值为5,接着将指针p指向变量c(此后对p的赋值操作相当于对c操作,如*p = 12相当于c=12)2,3可以不过应完整点(只需先定义指针即可)(对2:int *p; int b = 5; *p = b)(对3:int *p; int c = 5; ...

c语言指针问题void main() int a[5],*p=a;printf("%x\\n",a);printf...
p++;printf("%x\\n",p); 输出p的地址,因为递增了1,所以p此处为 a[1]的地址

c语言 int *p=5 是啥意思。 是p的地址是5。还是*p的值为5
你的问题问得很好,这是初学者常困扰的地方。外形一样的东西,在声明里 和 在语句里 意思 可能不同,这是 C 语言奇葩 之一,常困扰初学者的地方。int *p=5; 这是声明。声明里 *p 只是表示 声明 p 是指针。 *p=5 叫初始化。但这样的初始化方法是错误的!指针 初始化 要给 地址,不能给...

C\/C++中,void*指针做形参的问题,下面swap函数,为何要强转为usigned cha...
void*指针不可以进行如下操作:int a=5;void *p=&a;int b;b=*p;所以要访问p指向的空间中的数据,必须把void*转化成为别的类型。为什么选择unsigned char作为被指向的类型呢?首先,必须选择一个1个字节的数据类型,否则如果iDataSize不是偶数,最后几位就没有办法安全地复制了。(除不尽)其次,用...

本人刚学c语言,不明白为什么 Int a[2]; int *p; p=a 和 p=(int *)&...
Int a[2];中a为数组的首地址,p=a是把首地址赋值给p,p保存的是数组的首地址;&a和a在一维数组中是同一个意思,都是取数组的首地址,但是在二维数组中就会有不同的意思,有取行地址和取首地址的区别,p=(int *)&a是将取出的地址强制转换为整型(没有必要转换,你本来定义的整型),其值...

帮我检查一下这段C语言.
所以a[2]的内容就变成了4,所以结果就变成了134790 错误3. 数组的插入算法错误 下面这个语句是无法实现数组的插入的:for(j=6;j<i;j--,p++)l=*p,*p=h;h=l;正确做法:正确的逻辑应该是这样的:本题的要求"用指针法把4插入1,3,5,7,9数列中",其实他的实现分为以下步:1. 定位(找到...

c语言程序??帮忙解答
1、 给你解释一下PP函数吧,pp(int a,int* b){ int c=4;p=*b+c; \/\/p是全局指针,针向了main函数中的局部变量b的地址,因此只要全局指针p所指向的地址的值改变了,那么变最b的值也就随之改变,并与*p相同,因此这里的结果*p应该为*b+c也就是2+4,结果是*p=6,同时变量b的值也是6...

c语言问题,关于指针的问题
p是对指针指向的地址取值。比如我们定义int a=0;int *p=&a;那么p依然是一个int型变量,其值为变量a的地址。那么当我们写while(*p);printf。。。;时,这里的*p就是a的值。所以只要a的值等于0,就会执行printf,否则就一直循环。这样我们就能判断*p指向地址的内容为0。同理!*p就能判断*p指向...

最近在自学C语言 请问一下 P=&a,和*p=a有什么区别么 (能举一下例子么...
P=a表示,P这个变量(即,内存地址)里面存的那个地址,其所存储的值为a这个变量的值。如果P里面的值(注意,是P里面的值,不是*P,也不是&P)是个非法的地址,比如说,你没有给初始值。那么,*P=a会导致segementation fault(linux下,如果windows下没出问题,那就是windows自己的底层库给P预设了...

C语言中 int a=5; int *p; p=(int *)&a; 此时p指向a,为什么?求指教,谢谢...
p=(int *)&a 令int *q=&a;p=q,p和q的指向相同,不是指向a了么。。。

相似回答
大家正在搜