标题:初学者关于指针与数组中指针变量的问题
取消只看楼主
s2amor
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-25
结帖率:0
已结贴  问题点数:20 回复次数:1 
初学者关于指针与数组中指针变量的问题
#include <stdio.h>
#include <stdlib.h>


int main(void)
{
    int a[5], *p = a, i;    /*此处对p进行了初始化*/
    for (i = 0; i < 5; i++)
    {
        *p = i;             /*这里就是使用指针来给数组a进行赋值吗?比如p指针开始指向a[0],p+1之后指向a[1],,以此类推,到循环执行结束指针p指向数组a的最后一个元素,但是数组a尚未有值,只是将指针与数组a的对应关系明确了,对吗?*/
        p++;
    }
    p = a;                  /*这里的不是在最上面就初始化过了吗,为什么在这里还要对其赋值呢?我试着将其删掉,但是显示的是一些奇怪的数,这是为什么呢?*/
    for (i = 0; i < 5; i++, p++)
    printf("%d\n", *p);
    return 0;
}
搜索更多相关主题的帖子: include 元素 
2014-11-25 15:07
s2amor
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-25
得分:0 
回复 2 楼 wp231957
int a[4],*p = a;
那这么说是对的吗:上面这个语句表明指针p指向数组a的首地址,p+1指向a[1]的地址,用数组名也可以这样表示:a+1也是a[1]的地址。p+1和a+1和&a[1]都是等价的,都是代表a[1]的地址。
2014-11-25 15:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439138-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.222049 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved