| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 605 人关注过本帖
标题:[求助]关于数组
只看楼主 加入收藏
rensheng
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-8-9
收藏
 问题点数:0 回复次数:4 
[求助]关于数组
1.有这样的一个数组a[2][2]
是否*(a[2] + 2) == *(a[1])?
a[0]指向a[0][0,]而+2不是超出了这个数组的范围了吗?去到了这个a[1]数组了吗,应如何理解?

2.char *ptr = "that";
这个指针不是还没有被初值化吗?为什么就可以使用?

3.
如果把地址常量赋给指针会出现什么情况?

4.
char *p = "that"如何知道字符"t"的内存地址?是printf("%d",p)吗?
2006-08-17 17:46
rabbit5455
Rank: 2
等 级:论坛游民
帖 子:123
专家分:25
注 册:2004-4-14
收藏
得分:0 
看来楼主是个爱思考的人哈 ...
只是这些东西可以自己去试验的 ...

1. 分析一下,a[2][2] = { a[0][0], a[0][1], a[1][0], a[1][1] },
a[2]在哪里呢,a[2]应该是a 的底三个元素:a[1][0],加2的华应该是a[1][1]后面的那个吧.
但是,以上这种情况是对一些没有边界检查的编译器而言,如果,编译器做边界检查,就会报出 ERROR 了.

2. char *ptr = "that";中的ptr是一个已经被初始化的指针,
分析一下,编译器会把"that"作为一个字符串常量,为它开辟一块内存,当然会有一个地址,
ptr 就被初始化这个地址.

3. 指针是一个地址,是一个整数,你把一个数值给了他,他就指向那个地址,
如果,整数是非法的,就会出现错误.

4. 第四个问题,楼主已经做出答案了.

==============================================
以上为个人见解,如有错误请诸位斧正 ...

Member Of Qingfeng Studio 王旭华[http://][http://hi.baidu.com/rabbit5455]
2006-08-17 19:23
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-20 00:36
0penning
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-8-21
收藏
得分:0 
o  !!~~~知道拉·~~~  O!~
2006-08-21 09:04
rensheng
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-8-9
收藏
得分:0 
不好意思,好久没上,所以,呵呵
那是不是能这样子呢?
int *pa = 15
谢谢指教了,

哦,还有,回楼上的,%P是什么,我怎么没在书上看到的呢?
当然不是不信你,只不过想你说清楚一点,呵呵,谢谢了

[此贴子已经被作者于2006-8-26 14:03:13编辑过]

2006-08-26 14:00
快速回复:[求助]关于数组
数据加载中...
 
   



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

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