免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: noress
打印 上一主题 下一主题

能不能用数组第一个元素的前一个元素进行指针运算? [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2004-04-01 14:01 |只看该作者

能不能用数组第一个元素的前一个元素进行指针运算?

[quote]原帖由 "noress"]我试过,在这里s - origin(当处理的行为空时)结果不对,所以这个函数不能用指针这么来实现。[/quote 发表:


结果不对?结果是多少?另外,这样做,的确是很危险,如果只是要去空行之类的操作,可以有更好的办法。

论坛徽章:
0
12 [报告]
发表于 2004-04-01 15:55 |只看该作者

能不能用数组第一个元素的前一个元素进行指针运算?

原帖由 "w25" 发表:
你拿他做运算有什么用?那他做随机数?或许她根本什么也没放,总之你不知道他是什么?那你拿他用什么用途呢?而且你也不能用它存东西。简直就是个"费地址"。
如果你说,在申请空间时最后一个空间的位置后面,拿那些..........

是不能用来存储数据,我也没用来存数据,只是进行指针运算而已。
不能用来存储数据的地址就是费地址? 那数组最后一个元素后的那个地址也是费地址?(ANSI中规定这是一个特例,没问题)NO!可以方面在数组中移动指针,同样的道理(就当我在想当然好了),我也希望第一个元素的前一个元素的地址也能进行类似的运算,我想这种当想然也不过份吧。只不过我现在试了,不行而已。

发贴前我没测试过, 后测试了确实我的想当然不行。至于我后面写的代码是给lenovo看的,表示我想用它干什么。
结果不对?结果是多少?另外,这样做,的确是很危险,如果只是要去空行之类的操作,可以有更好的办法。

只是试试

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2004-04-01 16:12 |只看该作者

能不能用数组第一个元素的前一个元素进行指针运算?

可以运算啊。我试了,都没问题啊。

  1. #include <stdio.h>;

  2. int main() {
  3.         char a[10] = {0};
  4.         char *p;
  5.         int n;
  6.         p = a;
  7.         p--;
  8.         n = p - a;
  9.         printf("%d\n",n);
  10.         exit (0);
  11. }
复制代码


p和a互相减都没问题。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
14 [报告]
发表于 2004-04-01 16:12 |只看该作者

能不能用数组第一个元素的前一个元素进行指针运算?

可以运算啊。我试了,都没问题啊。

  1. #include <stdio.h>;

  2. int main() {
  3.         char a[10] = {0};
  4.         char *p;
  5.         int n;
  6.         p = a;
  7.         p--;
  8.         n = p - a;
  9.         printf("%d\n",n);
  10.         exit (0);
  11. }
复制代码


p和a互相减都没问题。

论坛徽章:
0
15 [报告]
发表于 2004-04-01 16:40 |只看该作者

能不能用数组第一个元素的前一个元素进行指针运算?

你没看清我说的那个费地址是加引号的,加引号的目的是对最楼上的那就话说得。

你用地址值去减,别说减一,就是减更多,只要在你定义类型的范围内也不会出错!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP