社区
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这个地址在内存中到底是哪儿呢,如何确定的,内存中每一处都是有固定地址(比如某个编号)的吗 还是内存中的地址编号是按物理位置连续分布的??
小弟初学指针,还望大虾不吝赐教~
...全文
128
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语言
指针
,涵盖
指针
概念、内存与地址、
指针
变量、解引用操作等基础内容,还介绍了const修饰
指针
、
指针
运算、野
指针
规避等要点。此外,涉及数组名、二级
指针
、
指针
数组等应用,以及回调函数、qsort函数等知识,最后给出经典
指针
编程题及答案。
【C语言】
指针
(超详细!!一篇文章搞定!!!)
本文深入讲解C语言
指针
,涵盖
指针
概念、运算、类型、使用等多方面知识。介绍了
指针
与内存、数组、函数的关系,以及野
指针
、assert断言、传址调用等内容。还涉及二级
指针
、
指针
数组、回调函数、qsort函数等高级应用,并给出经典
指针
编程题及答案。
C语言
指针
的一坨
问题
本文聚焦C语言
指针
,详细阐述了内存泄漏、空
指针
解引用、悬空
指针
等15种可能出现的
问题
,给出对应示例代码和修复方法。还提出使用标准库状态码、添加注释、考虑平台差异等改进建议,以确保代码健壮、易维护和调试。
C语言——
指针
本文深入解析C语言
中
的
指针
概念,包括
指针
变量的定义与使用、通过
指针
引用数组的方法、数组名与取址运算符的区别,以及如何避免野
指针
等
问题
。适合初学者及需要巩固
指针
知识的开发者。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章