C语言中, 指针变量(指向数组)怎样使其移回第一位

还有有办法使该指针指向数组中任何一位吗?急用.拜托了!!!!有办法使该指针指向数组中任何一位吗?另外,我的数组是结构体数组:#definec_N5struct_Stude... 还有有办法使该指针指向数组中任何一位吗?

急用.拜托了!!!!
有办法使该指针指向数组中任何一位吗?

另外, 我的数组是结构体数组:
#define c_N 5
struct _Student
{
char m_szNum[10];
char m_szName[10];
char m_szTel[10];
};
struct _Student cRecord[c_N]={0};
struct _Student *cP
cP=&cRecord;
展开
 我来答
风若远去何人留
推荐于2017-09-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450116
专业C/C++软件开发

向TA提问 私信TA
展开全部
两种方式:
1 在移动的时候,记录移动的偏移量,存在变量n中。这样对于移动后的指针p,计算
p-=n;
就是将其移动到第一位。

2 更常用的方式为,在有此类需要时,运算前保存原始的位置,即定义同类变量p1,指向第一位,比如计算前做p1 = p;
这样在需要移回时,只需要p = p1即可。
如果p移动时与原始数组在同一个作用域内,那么也可以直接重新复制p为原始数组名。
深巷夜语
2010-01-23 · 超过20用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:50.6万
展开全部
1楼说错了, 数组名是常量指针 而不是指针常量。
楼主的问题我理解的不是很明白。。。
int array[10];
int *p;
p = array; // p指向数组的第一位
p = array + 1; //p指向数组的第二位,依次类推。不知道是不是问的这个问题

补充:
struct _Student cRecord[c_N]={0};
struct _Student *cP
cP=&cRecord;

你可以 cp->m_szNum[1]; 或者 (*cp).m_szNum[1]; 两种方式都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhlh_xt
推荐于2017-09-12
知道答主
回答量:12
采纳率:0%
帮助的人:5.6万
展开全部
有的,看示例:
int a[10];
int *p ;
p=a;
要p指向的第i(i>=0 && i<10)位可以使用p = a+i;即可实现。
这样指针p就一直指向数组的首地址。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
難得當歌對酒時
2010-01-23 · TA获得超过1187个赞
知道小有建树答主
回答量:517
采纳率:100%
帮助的人:824万
展开全部
令其等于数组名就可以移回第一位,然后移到哪一位就加几。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bennysu
2010-01-23 · TA获得超过749个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:217万
展开全部
补充:
你要指向数组的话只能定义一个char类型的指针。例如:
char *p;
p=cP->m_szNum+n;//(n=0,1,2,...)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式