数组,指针的熟悉,一些小心得

main()           //*&i其实与*P其实是同样结果,同时某些情况也就等于i.
{                   //&i=p,*P=i,*P表示&i所表示的数值
    long i;
    long *p;
    printf("please input the number:\n");
    scanf("%ld",&i);
    p=&i;
    printf("the result1 is:%ld\n",*&i);
    printf("the result2 is:%ld\n",i);
    printf("the result3 is:%ld\n",*p);
}

int i;int *P;p=&i,此时P前不要写*.或者int i;int *P=&i,同时定义和赋值要写*.*&优先级一样,从右像做.其实*P就是&上的那个数的内存位置吧

 //P指针位移1位,就等于&i地址位移一位,就是int i 的一个单位,4个字节.p++后面的比前面的大4个字节
void pc()
{
    int i;
    int *p;
    printf("please input the number:\n");
    scanf("%d",&i);
    p=&i;
    printf("the result1 is:%d\n",p);
    p++;
    printf("the result2 is:%d\n",p);
    
    return ;
}


//下面是二维数组简单点的如何输出二维排列方式,但是思维还是有点绕,不够清晰直接

int main()
{
    int a[3][5],i,j;
    printf("please input:\n");
    for (i=0; i<3; i++)
    {
        for (j=0; j<5; j++)
        {
            scanf("%d",a[i]+j);
        }
    }
    printf("the result is:\n");
    for (i=0; i<3; i++)
    {
        for (j=0; j<5;j++)
        {
            printf("%3d",*(a[i]+j));
        }
        printf("\n");
    }
    return 0;
}

 char (*p)代表定义一个*P类型是char型, .....= (char *)p表示强势转换成字符型指针.字符型数组后面会默认多个\0会自动帮你太添加,而整形数组则需要"包含\0",才能相当于字符型数组,今天这章内容有点多,所以慢慢理解,至于作业暂时没有做,还在熟悉与理解

posted @ 2014-09-23 21:30  汪伟  阅读(219)  评论(0编辑  收藏  举报