关于C语言 指针赋值问题

请问chara[10]="XXXXXXX",*pa=a和chara[10]="XXXXXXX",*pa=&a有什么不同虽然说都是正确的已经查过知道了有相同的问题但是没有提... 请问
char a[10]="XXXXXXX",*pa=a

char a[10]="XXXXXXX",*pa=&a
有什么不同 虽然说 都是正确的
已经查过 知道了 有相同的问题 但是没有提及根本..

在使用
printf("%s %x %x %x %s",*pa,&pa,pa,&a,a);
为什么 结果不一样? 差距两个字节...
其中一个有乱码. 和 四位数字.........
展开
 我来答
百度网友37bdc142c
2007-11-29 · TA获得超过812个赞
知道小有建树答主
回答量:1229
采纳率:0%
帮助的人:485万
展开全部
&是一元运算,取变量地址的操作,间接访问操作用运算符号*.&他返回操作数的内存地址,可以赋给类型合适的指针./ 列如int x int *px px=&x
将X的内存地址赋给指针变量px,该赋值语句表示 指针px制向变量X, *运算符与&运算符刚好相反,它也是一远运算符.用语返回指针指向的内存地址中存的值!
皮皮爱运动
2007-11-30 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:123万
展开全部
char a[10]="XXXXXXX",*pa=a

char a[10]="XXXXXXX",*pa=&a

这里的a和&a 这2个值应该是相同的吧,一个是数组首地址,一个是数组地址,但细节说来还是不同的
a+1,表示的是数组的第二个元素,而&a+1则表示这个数组后面的下一个地址了,很可能就是这里的a[9]+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yhy19820816
2007-11-29 · TA获得超过304个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:345万
展开全部
char a[10]="XXXXXXX",*pa=a pa是这个数组的首地址.指向这个字符串.
char a[10]="XXXXXXX",*pa=&a,其中a代表的数组元素的首地址,&a代表存放这个数组地址的地址,这时候,pa存放的仍然是地址,但已经不是数组元素的首地址了,而是存放这个数组元素首地址的地址.所以两个是不同的.

在使用
printf("%s %x %x %x %s",*pa,&pa,pa,&a,a);
为什么 结果不一样? 差距两个字节...
其中一个有乱码. 和 四位数字.........
这个能不能说具体下.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiuhaoyi111
2007-11-30 · TA获得超过801个赞
知道小有建树答主
回答量:624
采纳率:0%
帮助的人:424万
展开全部
char a[10]="XXXXXXX",*pa=a <—— *pa是值,那a相当于是a[0],这个是只把值给*pa;

char a[10]="XXXXXXX",*pa=&a〈----是传址,传统上是不行的,但是初始化的话是可以的...在函数里面的话就不行了..
printf("%s %x %x %x %s",*pa,&pa,pa,&a,a); 先一一对应..%s对应的是*pa,*pa是值%s是字符串...,&pa也是值他是以16进制输出的,pa是首地址,照理应该不能传的,应该是乱吗...,反正就这些了 你看着办吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式