C经典 关于一维数组指针

来源:互联网 发布:软件高级工程师待遇 编辑:程序博客网 时间:2024/05/19 08:39

说明:
1)一维数组指针表示方法 int *p = a 而非 int *p = &a
也可int *p = &a[0]表示
2)p + 1 或a + 1表示的是指向下一个地址

#include <stdio.h>int main(int argc, const char * argv[]){    // insert code here...    int a[4]={1,2,3,4};    printf("a[0] = %p\n",&a[0]);    printf("a[1] = %p\n",&a[1]);    printf("a[2] = %p\n",&a[2]);    //定义数组指针,    int *p = a;//p = a    //取地址    printf("p = %p\n",p);//指向a[0];    printf("p + 1 = %p\n",p + 1);//p + 1指向a[1]; = 0x7fff5fbff874    printf("a + 1 = %p\n",a + 1);//a + 1指向a[1]; = 0x7fff5fbff874    //取内容    printf("*(p + 1) = %d\n",*(p + 1));//*(p + 1)指向a[1]的值; =2    printf("*(a + 1) = %d\n",*(a + 1));//*(a + 1)指向a[1]的值; =2    //    printf("*p++ = %d\n", *p++);//=1;    printf("*p= %d\n", *p); // =2;    //使用数组指针遍历数组    int *pp = a;    for (int i = 0; i < 4; i ++) {        printf("*pp++ = %d\n", *pp++);    }    printf("\n");    return 0;}

结论:
引用一个数组元素,可以使用二种方法:
1)下标法 ,a[i];
2)指针法,(a+1) 或 (p+1)
3) a是常量 (a++)错误, p是变量(p++)正确

0 0