搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ char *p=(char *)(&a+1); 怎么解????
标题:
char *p=(char *)(&a+1); 怎么解????
只看楼主
粉jj
等 级:
论坛游民
威 望:
1
帖 子:123
专家分:82
注 册:2011-3-8
结帖率:
85.11%
楼主
已结贴
√
问题点数:10 回复次数:8
char *p=(char *)(&a+1); 怎么解????
#include <stdio.h>
main()
{
char a[]={'a','b','c','d'};
char *p=(char *)(&a+1);
printf("%c,%c",*(a+1),*(p-1));
getch();}
搜索更多相关主题的帖子:
include
2011-06-21 22:12
nan1888
等 级:
论坛游民
帖 子:44
专家分:86
注 册:2011-6-19
第
2
楼
得分:2
a的地址加1
2011-06-21 22:13
cosdos
来 自:ShangHai
等 级:
蜘蛛侠
威 望:
6
帖 子:2109
专家分:1385
注 册:2007-6-19
第
3
楼
得分:2
char p = a+1;
—>〉Sun〈<—
2011-06-21 22:15
粉jj
等 级:
论坛游民
威 望:
1
帖 子:123
专家分:82
注 册:2011-3-8
第
4
楼
得分:0
回复 2楼 nan1888
那 *(p-1) 为什么是 d ???
2011-06-21 22:28
voidx
来 自:邯郸
等 级:
火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
第
5
楼
得分:2
char *p=(char *)(&a+1); // 这里 1 表示 变量 a 的长度乘以 1, 而不是 1 个字节。
2011-06-21 22:33
粉jj
等 级:
论坛游民
威 望:
1
帖 子:123
专家分:82
注 册:2011-3-8
第
6
楼
得分:0
回复 5楼 voidx
不明白。
2011-06-21 22:47
voidx
来 自:邯郸
等 级:
火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
第
7
楼
得分:0
比如
int * p_int;
p_int + 1; // 因为一个 int 占 4 个字节,所以这里 p_int + 1 会使 p_int 的值实际增加 4
楼主这个程序里 a[] 有 4 个元素,每个元素占 1 个字节,所以 a 占了 4 个字节。
&a 表示指向长度为 4 的字符型数组的指针,所以长度的为 4。
所以 &a + 1 == a + 4
2011-06-21 23:25
zy623132167
来 自:湖北
等 级:
论坛游民
帖 子:12
专家分:21
注 册:2011-6-22
第
8
楼
得分:2
就是a+4的意思
如果三十年后这个世上还有坚持这个词!
2011-06-22 09:19
hjywyj
等 级:
小飞侠
威 望:
3
帖 子:1114
专家分:2611
注 册:2010-4-14
第
9
楼
得分:2
*(a+1)其实就是a[1];
2011-06-22 09:32
9
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-343598-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.033320 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved