下弦月之夜_夜末 发表于 2013-12-4 22:03:00

指针基础

#include "stdio.h"

int main(void)
{
        int a[]={2,4,6,8,10},i;
        int * p=a;
        for(i=0;i<5;i++)
                printf("%d ",p);   //为什么不是*p,p不是表示地址吗?
        return 0;
}

此处略缺三万 发表于 2013-12-5 19:26:34

首先,a是一个"指向int型数组"的"常指针",
int * p=a; 把a的"值"给了p,那么此时p也指向了这个"int数组",此时p的值为地址(也就是&a).
此时p等于a,是一个"值"(非地址),p的原理就是,也就是取p+i地址中的"值".仔细体会一下吧~
页: [1]
查看完整版本: 指针基础