社区
C++ 语言
帖子详情
指针指针指针 关于c中指针问题!!
micro_sun
2008-04-18 01:17:53
若T为指针变量,指向某一内存区域首地址,那么T[1],T[2]表示什么?
还有 按书上所说,T+1表示地址计算 结果为T+1*c(c表示T所指的变量所占字节数),那么T+1*c这个地址在内存中到底是哪儿呢,如何确定的,内存中每一处都是有固定地址(比如某个编号)的吗 还是内存中的地址编号是按物理位置连续分布的??
小弟初学指针,还望大虾不吝赐教~
...全文
89
12
打赏
收藏
指针指针指针 关于c中指针问题!!
若T为指针变量,指向某一内存区域首地址,那么T[1],T[2]表示什么? 还有 按书上所说,T+1表示地址计算 结果为T+1*c(c表示T所指的变量所占字节数),那么T+1*c这个地址在内存中到底是哪儿呢,如何确定的,内存中每一处都是有固定地址(比如某个编号)的吗 还是内存中的地址编号是按物理位置连续分布的?? 小弟初学指针,还望大虾不吝赐教~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
micro_sun
2008-07-17
打赏
举报
回复
[Quote=引用 11 楼 meiZiNick 的回复:]
没遇到过这种情况.
[/Quote] 怎么没遇到? 严蔚敏老师的数据结构里光这种情况。。由于想考研所以在学数据结构,,不过最近又不是很有考研的激情了,所以最近学JAVA多些。。。。再次谢谢各位的指教^_^
meiZiNick
2008-05-01
打赏
举报
回复
没遇到过这种情况.
matrixdwy
2008-04-20
打赏
举报
回复
int *T;
int c = 3;
T = &c;
*T就是3
T[0]也是3;
T[1]是c的后面第4个字节处的地址的值,一般来说是垃圾,因为这个地址还没有被使用,只是一堆没有用的01的组合,但是T[1]仍然可以根据这些01来“翻译”成为一个整型数值,这个数值是没有意义的。
在说的明确点,比如 &c = 00001234 (这个不是正确的内存地址格式,只是为了方便起见才举了这么个例子)
那么T指向的就是 00001234
&T[1] 就是 00001238 T[1]的值是00001238~00001241(4个字节,因为int占4字节)这段范围里面的01组合所“翻译”出来的整型值
&T[2] 就是 00001242 T[2]的值是00001242~00001245(4个字节,因为int占4字节)这段范围里面的01组合所“翻译”出来的整型值
shuangwen163
2008-04-20
打赏
举报
回复
指针我也不是很懂
aayzaayz
2008-04-20
打赏
举报
回复
[Quote=引用 6 楼 flyingpig4945 的回复:]
举个例子,楼主且看:
int a[3] = {1, 2, 3};
int *p = a;
p[0] == a[0] == 1;
p[1] == a[1] == 2;
...
p[n]为自p开始偏移量为n * sizeof (int)地址的变量
偏移量和T的“原始类型”(如T为int *,则为int;若T为char *,则为char)的sizeof、n有关
明白否?
另:我想分数的多少不是有没有人回答的原因。
[/Quote]
p+1 = & (p[1])
P+2 = &(P[2])
*(p+1) = a[1] = p[1]
flyingpig4945
2008-04-20
打赏
举报
回复
Lstyk讲的比偶规范……学习一下:-)
flyingpig4945
2008-04-20
打赏
举报
回复
举个例子,楼主且看:
int a[3] = {1, 2, 3};
int *p = a;
p[0] == a[0] == 1;
p[1] == a[1] == 2;
...
p[n]为自p开始偏移量为n * sizeof (int)地址的变量
偏移量和T的“原始类型”(如T为int *,则为int;若T为char *,则为char)的sizeof、n有关
明白否?
另:我想分数的多少不是有没有人回答的原因。
Lstyk
2008-04-20
打赏
举报
回复
T[1] = *(T + 1),解引用T+1所指向的变量
T[n] = *(T + n),
&T[1] = T + 1, &T[n] = T + n,
“内存中每一处都是有固定地址(比如某个编号)的吗 还是内存中的地址编号是按物理位置连续分布的?”
这个问题现在我也不知道。
T + n所指向的地址是指从T所指向的地址向后移动了n * sizeof(*T)个字节,
至于是向内存高地址方向移动还是向低地址方向移动,不同种类的机器可能不一样。
micro_sun
2008-04-20
打赏
举报
回复
2楼的,为什么是(char*)T?强制转换为 指向CHAR型的指针 是指什么
micro_sun
2008-04-20
打赏
举报
回复
T是指针啊,sizeof(T)是多少呢,是T所指的变量占的空间吗?
SORRY啊,现在手头较紧,所以分不多,还望见谅
icoding
2008-04-18
打赏
举报
回复
T[1] == (char*)T+(sizeof(T)*1)
T[2] == (char*)T+(sizeof(T)*2)
lyserver
2008-04-18
打赏
举报
回复
分太少了,一般是没有人愿回答的。
简单说一下吧,T是内存中的一个地址,这个地址可以是物理地址,也可以是逻辑地址,视实际情况而定。
T+1*sizeof(T)表示是在T的地址是偏移sizeof(t)个字节。
T[0]的地址与T的地址一样,T[1]则与T+1*sizeof(T)一样,T[2]则与T+2*sizeof(T)一样。
堆和栈的区别 深入理解c语言
指针
的奥秘 C
中
指针
的复杂应用
值得瞅瞅 堆和栈的区别 深入理解c语言
指针
的奥秘 C
中
指针
的复杂应用
GTAV竖
中
指鼠标
指针
美化包(win)
GTAV竖
中
指鼠标
指针
美化包(win)
精通C语言
指针
指针
被誉为C语言的精髓、C本质上是加了一层语法糖的汇编,引进当时先进的函数,保留了汇编强大的地址直接访问功能 ——
指针
,使其高效灵活。本课程是黄强老师对于
指针
的一次专题讲解,相信能给大家带来收获!
C语言字符串
指针
(指向字符串的
指针
)_C语言
中
文网1
9.1 1分钟彻底理解
指针
的概念 9.2 大话C语言
指针
变量 9.3 C语言
指针
变量的运算 9.4 数组
指针
(指向数组的
指针
) 9.5 字符串
指针
(指向字符串的
c
中
指针
的一些特殊用法
c
中
指针
的一些特殊用法总结 void类型
指针
C++ 语言
64,690
社区成员
250,497
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章