指针和数组的问题。该如何定义指针变量并赋值。
发布网友
发布时间:2022-05-22 07:36
我来回答
共3个回答
热心网友
时间:2024-03-07 09:01
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 本身就是一个地址 ,访问某个地址中的值 一般用 *(指针变量)
还有不懂的请追问 还望采纳
热心网友
时间:2024-03-07 09:02
#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;
}
热心网友
时间:2024-03-07 09:02
令p指向第5个元素即a[4],等价于将p向后移动4个元素:p+=4。