数组和指针的区别

1、访问方式不同

  ⑴数组的下标引用(读一次内存)

  char ary[5] = "hello",c;

  ......

  c = ary[2];

  

  ⑵对指针的引用(读两次内存)

  char *P,c;

  ......

  c = *p;  

  

  ⑶对指针进行下标引用(读两次内存)

  char *p = "hello";

  ......

  c = p[2];

  

2、在ANSI C中,初始化指针时所创建的字符常量(注意只能在char型时赋初值,如char *p = "hello";但是float *pip = 3.14;将无法通过编译)被定义为只读。如果试图通过指针修改这个字符串的值,程序就会出现未定义的行为。与指针相反,由字符串常量初始化的数组是可以修改的。

原文地址:https://www.cnblogs.com/luzhiyuan/p/3587884.html