指针和数组的问题。该如何定义指针变量并赋值。
指针和数组的问题。该如何定义指针变量并赋值。比如先inta[10]int*p;p=a;指向首地址的意思吧。那如果我要指向中间的比如数组第五个元素,有哪些方法?(越详细越好...
指针和数组的问题。该如何定义指针变量并赋值。比如先int a[10]
int *p;
p=a;
指向首地址的意思吧。
那如果我要指向中间的比如数组第五个元素,有哪些方法?
(越详细越好。) 展开
int *p;
p=a;
指向首地址的意思吧。
那如果我要指向中间的比如数组第五个元素,有哪些方法?
(越详细越好。) 展开
展开全部
#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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
令p指向第5个元素即a[4],等价于将p向后移动4个元素:p+=4。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询