C语言—指针和数组

作者:追风剑情 发布于:2019-9-28 10:46 分类:C

示例

  1. //Visual Studio中加上这句才可以使用scanf()
  2. //否则只能使用scanf_s()
  3. #define _CRT_SECURE_NO_WARNINGS
  4. #include <stdio.h>
  5. #include <stdbool.h>
  6.  
  7. #define SIZE 4
  8.  
  9. //argc: 参数个数 argv[]: 参数数组
  10. int main(int argc, char *argv[])
  11. {
  12. short dates[SIZE];
  13. short * pti;
  14. short index;
  15. double bills[SIZE];
  16. double * ptf;
  17. pti = dates;//把数组地址赋给指针
  18. //pti = &dates[0];//和上面那句等效
  19. ptf = bills;
  20. //ptf = &bills[0];//和上面那句等效
  21.  
  22. printf("%23s %10s\n", "short", "double");
  23. for (index = 0; index < SIZE; index++)
  24. printf("pointers + %d: %10p %10p\n", index, pti + index, ptf + index);
  25.  
  26. //指针+1,指针会移到下一个存储单元所在内存地址(以字节为单位)
  27. //short数组的指针+1,指针会往后移两个字节,因为1个short占两个字节。
  28. //注意:内存地址是常量类型
  29.  
  30. if (dates + 2 == &dates[2])
  31. printf("内存地址相同\n");
  32.  
  33. if (*(dates + 2) == dates[2])
  34. printf("值相同\n");
  35.  
  36. //操作数组时,可以使用指针表示法,也可以使用数组表示法
  37.  
  38. system("pause");
  39. return 0;
  40. }

运行测试

1111.png

标签: C语言

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号