[牛人杂谈] 原来指针可以变身数组

[复制链接]
371|3
小灵通2018 发表于 2025-9-9 20:09 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         int *p=malloc(sizeof(int)*10);
  6.         int a=5;
  7.         for(int i=0;i<10;i++)
  8.         printf("%d \n",p[i]);
  9.         free(p);

  10.         printf("char %d \n",sizeof(char));
  11.         printf("int %d \n",sizeof(int));       
  12.         printf("short %d \n",sizeof(short));
  13.         printf("long %d \n",sizeof(long));
  14.         printf("float %d \n",sizeof(float));
  15.         printf("double %d \n",sizeof(double));
  16.         printf("long double %d \n",sizeof(long double ));
  17.         printf("long int %d \n",sizeof(long int ));       
  18.         printf("long long %d \n",sizeof(long long ));
  19.    return 0;
  20. }
利用指针定义一个10个成员的数组。
 楼主| 小灵通2018 发表于 2025-9-9 20:10 | 显示全部楼层
  1. 0
  2. 0
  3. 0
  4. 0
  5. 0
  6. 0
  7. 0
  8. 0
  9. 0
  10. 0
  11. char 1
  12. int 4
  13. short 2
  14. long 8
  15. float 4
  16. double 8
  17. long double 16
  18. long int 8
  19. long long 8
 楼主| 小灵通2018 发表于 2025-9-9 20:12 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         int *p=malloc(sizeof(int)*10);
  6.         int a=5;
  7.         for(int i=0;i<10;i++)
  8.         printf("%d \n",p[i]);


  9.         printf("------------------------------------------------------------------------- \n");       
  10.         for(int i=0;i<10;i++) p[i]=i*2 + 1;
  11.         for(int i=0;i<10;i++)
  12.         printf("%d \n",p[i]);
  13.        
  14.         free(p);
  15.    return 0;
  16. }
像数组一样赋值

  1. 0
  2. 0
  3. 0
  4. 0
  5. 0
  6. 0
  7. 0
  8. 0
  9. 0
  10. 0
  11. -------------------------------------------------------------------------
  12. 1
  13. 3
  14. 5
  15. 7
  16. 9
  17. 11
  18. 13
  19. 15
  20. 17
  21. 19


 楼主| 小灵通2018 发表于 2025-9-9 20:18 | 显示全部楼层
是不是很有趣,好多人没想到吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

158

主题

1732

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部