指针和数组的问题。该如何定义指针变量并赋值。

指针和数组的问题。该如何定义指针变量并赋值。比如先inta[10]int*p;p=a;指向首地址的意思吧。那如果我要指向中间的比如数组第五个元素,有哪些方法?(越详细越好... 指针和数组的问题。该如何定义指针变量并赋值。比如先int a[10]
int *p;
p=a;
指向首地址的意思吧。
那如果我要指向中间的比如数组第五个元素,有哪些方法?
(越详细越好。)
展开
 我来答
碧水闲花
2018-07-12
知道答主
回答量:9
采纳率:0%
帮助的人:4.7万
展开全部
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
p=a;
printf("%d %d",p[4],*(p+4));
指针变量是数据的地址,数组a 本身就是一个地址 ,访问某个地址中的值 一般用 *(指针变量)
还有不懂的请追问 还望采纳
刀劈华山
2018-07-12 · TA获得超过2273个赞
知道小有建树答主
回答量:1338
采纳率:72%
帮助的人:391万
展开全部
#include <stdio.h>

int main(int argc, char *argv[])
{
    int a[5] = {1, 2, 3, 4, 5};
    int *p = NULL;
    
    //可以认为p=&a[0];
    p = a;
    printf("a:%d %#x\n", *p, p);
    
    //和&a[0]一样
    p = (int *)&a;
    printf("&a:%d %#x\n", *p, p);
    
    //a[4]就是数组a的第5个元素,它的地址可以赋给p
    p = &a[4];
    printf("&a[4]:%d\n", *p);
    
    //a往后偏移4位,每一位就是一个int *,这样往后偏移了4个int指针后指向的就是最后一个int指针了,赋值给p
    p = a+4;
    printf("a+4:%d\n", *p);
    
    return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GTA小鸡
高粉答主

2018-07-12 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
令p指向第5个元素即a[4],等价于将p向后移动4个元素:p+=4。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式