用在函数中

  1. #include <stdio.h>
  2. void fun(int* a, int len)
  3. {
  4. for(int i=0; i<len; ++i) {
  5. /*printf("%d ", a[i]);*/ // 两种都可以
  6. printf("%d ", *(a + i));
  7. }
  8. }
  9. int main()
  10. {
  11. int temp[10] = {1, 3, 5, 7, 9};
  12. fun(temp, 10); // print to 1 3 5 7 9 0 0 0 0 0
  13. return 0;
  14. }

指针大小

  1. #include <stdio.h>
  2. // 当数组作为函数得参数进行传递时,数组就自动退化为同类型得指针。
  3. int GetSize(int data[])
  4. {
  5. return sizeof(data);
  6. }
  7. int main()
  8. {
  9. int data1[] = {1, 2, 3, 4, 5};
  10. int size1 = sizeof(data1);
  11. int* data2 = data1;
  12. // 在 32 位系统上,对任意指针求 sizeof , 得到得结果都是 4。
  13. int size2 = sizeof(data2);
  14. int size3 = GetSize(data1);
  15. printf("%d, %d, %d \n", size1, size2, size3);
  16. }

在 32 位系统上,对任意指针求 sizeof , 得到得结果都是 4 。也就是说,任意指针大小都是 4 个字节