社区
新手乐园
帖子详情
一个小问题,关于指针的
snowingbf
2007-10-13 11:31:06
设int s[3][2]={1,2,3,4,5,6},(*p)[2]=s;,则*(*(p+1)+1)的值是__________
p是指向指针的指针么?
这道题应该怎么理解?
...全文
125
18
打赏
收藏
一个小问题,关于指针的
设int s[3][2]={1,2,3,4,5,6},(*p)[2]=s;,则*(*(p+1)+1)的值是__________ p是指向指针的指针么? 这道题应该怎么理解?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
晨星
2007-10-15
打赏
举报
回复
数组名和指针虽然不是一会事,但至少它们有一点是一样的:即都可以进行地址运算,也就是基于地址的加加减减。
而且,对任何一个指针或数组名x,*(x + 1)永远都等价于x[1](这也是为什么你写1[x]也能通过编译的原因,因为*(x + 1)跟*(1 + x)本来就应该是一样的)。
按照以上说的,由于内层的"*(p + 1)"等价于p[1],于是"*(*(p + 1) + 1)"就等价于*(p[1] + 1),即p[1][1]。
snowingbf
2007-10-15
打赏
举报
回复
*(p[1]+1) == (p[1])[1] == p[1][1]
不是一维数组么?
整形数组怎么又代表指针了呢?
求详解!
不是各位回答的不好,而是我实在的笨
snowingbf
2007-10-14
打赏
举报
回复
外边还有个括号呢,又解引用了一次 *( )
lw1a2
2007-10-14
打赏
举报
回复
p是一个指针,指向一个2维数组
s可以看作是一个2维数组,每维的元素又是一个3维数组
(p+1),指向s的第2维
*(p+1),指向s的第2维的3个元素的第1个
*(p+1)+1,指向s的第2维的3个元素的第2个
*(*(p+1)+1),s的第2维的3个元素的第2个值
ckt
2007-10-14
打赏
举报
回复
p是指向第一维的
*(p+1)第1行
*(p+1)+1 第1行第1个
所以为4
Soli
2007-10-14
打赏
举报
回复
上面那个搞得有点错位。
int (* p)[ 2 ];
| | | | |
5 2 1 3 4
按下面标的序号解读该声明式:
1.定义一个变量p
2.这个p是个指针
3.这个指针指向一个数组
4.这个数组长度为2
5.这是个整型数组
总之,这个声明是的意思是:定义一个指向长度为2的整型(一维)数组的指针变量p
解析原则是:一变量名为中心,逐层向外,先右后左,括号内优先。
Soli
2007-10-14
打赏
举报
回复
int (* p)[ 2 ];
| | | | |
5 2 1 3 4
按下面标的序号解读该声明式:
1.定义一个变量p
2.这个p是个指针
3.这个指针指向一个数组
4.这个数组长度为2
5.这是个整型数组
总之,这个声明是的意思是:定义一个指向长度为2的整型(一维)数组的指针变量p
解析原则是:一变量名为中心,逐层向外,先右后左,括号内优先。
Soli
2007-10-14
打赏
举报
回复
p == s
*(p+1) == p[1]
*(p[1]+1) == (p[1])[1] == p[1][1]
*( *(p+1) + 1 ) == p[1][1]
方括号[]是下标运算符,*为取内容运算符,
可以认为p[1]是执行了两步:指针p前移1步;取其内容
亦即:q = p+1;*q 即 *(p+1)
故 *(p+1) == p[1]
其他情况类推
王二牛放犇
2007-10-14
打赏
举报
回复
(*p)[2]=s 这条语句是指向数组行,还是数组列?有问题吧,如果这个不确定,那结果不一样
chen_liang747703
2007-10-14
打赏
举报
回复
看了半天高手们的留言才看懂了!真的是4啊!
哈哈!有收获。
zhouhong0801
2007-10-14
打赏
举报
回复
(*p)[2]是一个指针数组
*(p+1)是s[1]
*(p+1)+1就是s[1]中的第二个元素s[1][1],也就是4
eliuzhi
2007-10-14
打赏
举报
回复
不好意思,把逗号看成分号了,错了错了,结果应该是4。
eliuzhi
2007-10-14
打赏
举报
回复
这题对吗?
1:s可以理解为是一个int× 类型
2:题中(*p)[2]=s;可以解释为 (*p) 是一个int** 类型
3:那p 就是 int*** 类型
4:那*(p+1) 就是指向了一个未知的地址啊?
或者这样理解
(*p) = (*(p+0)) 和 *(p+1)没关系啊?
snowingbf
2007-10-14
打赏
举报
回复
p+1又是怎么和s的第二行关联起来的呢?
数组p是个整形数组还是指针数组呢?(*p)[0]和(*p)[1]怎么就代表S的两行了?
晕啊
zcy_2002
2007-10-14
打赏
举报
回复
int (*p)[2]
表示p是一个指针变量,它指向包含2个元素的一维数组.
*p 两侧的扩号不可缺省,如果写成*p[2],就变成了指针数组.
snowingbf
2007-10-14
打赏
举报
回复
s感觉是这个二维数组的首地址
那么(*p)[2]就应该是个指针了?我对(*p)[2]的含义不理解
snowingbf
2007-10-14
打赏
举报
回复
(*p)[2]=s;
这句是什么意思?
haozlee
2007-10-13
打赏
举报
回复
答案:4
/////////
p指向数组的第0行,p+1指向第1行,*(p+1)+1则指向第1行的第二个数,为4。
C/C++
指针
的13份资料
1. **
指针
的概念**:
指针
是一种特殊的变量,它存储的是内存地址,即另
一个
变量的内存位置。通过
指针
,我们可以直接操作存储在该地址上的数据。 2. **声明
指针
**:在C/C++中,我们使用星号(*)来声明
指针
,例如`int *...
一个
指针
占几个字节?原理是什么呢?
一个
指针
占几个字节的
问题
,感觉会C语言的同学都知道。但是在面试过程中,面了几个同学,不是答忘记了,就是两个、四个的瞎蒙。。。 那么,
一个
指针
到底占几个字节呢? 其实,这个
问题
很简单,稍微上网一搜,你就...
指针
数组与数组
指针
详解
指针
数组与数组
指针
详解1....数组
指针
:数组
指针
可以说成是”数组的
指针
”,首先这个变量是
一个
指针
,其次,”数组”修饰这个
指针
,意思是说这个
指针
存放着
一个
数组的首地址,或者说这个
指针
指向
一个
数组的首地址。 根
c语言
指针
类型占多少字节,关于
指针
占多少个字节
说道这个
问题
,学过C语言的都知道,我们在定义
一个
指针
的时候需要说明
指针
的类型,那么按道理来说,不同类型的
指针
大小应该不同啊,整形占四个字节,浮点占八个字节,其实不是这样,
指针
指向的是我们定义的类型的第...
一个
int型
指针
占几个字节,跟
指针
的类型有关系吗?(2020.11)
由于这两天看的数据结构都跟C语言相关,这2天的代码中都遇到了
指针
的
问题
,所以今天就看了一些关于
指针
的博客,然后突然想到
一个
问题
,
一个
int型的
指针
占几个字节。
一个
文章中是这么画的 我也还没搞懂他到底是占几...
新手乐园
33,321
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章