| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3216 人关注过本帖, 1 人收藏
标题:char *p=(char *)(&a+1); 怎么解????
只看楼主 加入收藏
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
结帖率:85.11%
收藏(1)
已结贴  问题点数: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
Rank: 2
等 级:论坛游民
帖 子:44
专家分:86
注 册:2011-6-19
收藏
得分:2 
a的地址加1
2011-06-21 22:13
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:2 
char p = a+1;

—>〉Sun〈<—
2011-06-21 22:15
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
收藏
得分:0 
回复 2楼 nan1888
   *(p-1)   为什么是 d ???
2011-06-21 22:28
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:2 
char *p=(char *)(&a+1);    // 这里 1 表示 变量 a 的长度乘以 1, 而不是 1 个字节。
2011-06-21 22:33
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
收藏
得分:0 
回复 5楼 voidx
不明白。
2011-06-21 22:47
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-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
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:12
专家分:21
注 册:2011-6-22
收藏
得分:2 
就是a+4的意思

如果三十年后这个世上还有坚持这个词!
2011-06-22 09:19
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
*(a+1)其实就是a[1];
2011-06-22 09:32
快速回复:char *p=(char *)(&a+1); 怎么解????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018341 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved