| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 457 人关注过本帖
标题:指针变量的运算问题
只看楼主 加入收藏
醒了的梦
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-21
收藏
 问题点数:0 回复次数:5 
指针变量的运算问题
输入这段程序
#include<stdio.h>
void main()
{
  double a[]={1.1,2.2,3.3},*p;
  int i;
  p=&a[0];
  for(i=0;i<3;++i)
   printf("%5.1lf,"*(p+i));
}
各位大神,我想问下它在内存中的大概存储状态图,书本上0x0012 ff00 存储1.1 0x0012 ff08 存储 2.2,0x0012ff10存储3.3。为什么两个存储空间相隔的数字不对称?


还有就是程序中的数组不用直接说明有多少位,直接a【】直接可以用?记得应该是要说明有多少位的
搜索更多相关主题的帖子: double 
2013-03-21 10:55
醒了的梦
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-21
收藏
得分:0 
额,不好意思,第一个问题自己看错现在弄懂了,就是第二个问题还不怎么懂
2013-03-21 11:00
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
double是 8个字节,0x0012ff00  0x0012ff08  0x0012ff10都是相差 8没错啊,你说的对称是指什么?

这种初始化也是应允许的,会根据 {} 里的个数分配 3个空间


[fly]存在即是合理[/fly]
2013-03-21 11:03
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
收藏
得分:0 
呵呵,学习。。
2013-03-21 18:56
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 楼主 醒了的梦
看书仔细点,这种初始化数组书上肯定讲了

总有那身价贱的人给作业贴回复完整的代码
2013-03-21 19:22
taotao098501
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2011-5-22
收藏
得分:0 
0x0012 ff00 存储1.1 0x0012 ff08 存储 2.2,0x0012ff10存储3.3。   0x0012 ff00+8=1.1 0x0012 ff08 1.1 0x0012 ff08+8=0x0012ff10
相隔的数字怎么就不对称了  c中 double型占8byte 数组中指向的元素相邻 地址每过一个加8不是正好吗?
还有就是 如果数组在声明的时候在后面给了数组内容 即声明和初始化一块 系统会根据后面你放入的数据固定数组的长度的。。
2013-03-21 20:40
快速回复:指针变量的运算问题
数据加载中...
 
   



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

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