鱼C论坛

 找回密码
 立即注册
查看: 2149|回复: 0

[技术交流] 每天学一会 指针

[复制链接]
发表于 2018-4-30 20:50:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 理想小青年 于 2018-4-30 20:55 编辑

这是一个数组反转的指针练习,那么自己代码如下,感觉虽然代码复杂一些、而不简洁,思路很清晰!一起学习指针的朋友们可以加深一下认识,贴出来一起分享。(思路是两个定义两个数组,有更简单的方法只是练习)
  1. #include <stdio.h>
  2. #define M 10

  3. void reversion(int *q1,int *q2);
  4. void printf_io(int *q1);

  5. void main()
  6. {

  7.         int i,*q1,*q2,array[M],arrays[M];
  8.         q1 = array;//等于数组第一个元素变量地址array[0];
  9.         //q2 = arrays;//有办法让q2指针等于arrays[9]吗?
  10.         q2 = &arrays[9];

  11.         printf("Please enter numbers:\n");
  12.         for(i = 0;i<M;i++)
  13.         {
  14.                 scanf("%d",&array[i]);
  15.         }

  16.         reversion(q1,q2);
  17.         q2 = arrays;//把指针调回来!q2 = arrays[0] 而不是 arrays[9]
  18.         printf_io(q2);

  19. }

  20. void reversion(int *q1,int *q2)
  21. {
  22.         int k;
  23.         printf("Is the transformation\n");
  24.         printf("Please wait a moment\n");
  25.         for(k = 0;k<M;k++)
  26.         {
  27.                 *(q2-k) = *(q1+k);//array[0]数组元素赋值给arrays[9];
  28.                 printf("%d = %d\n",&*(q2-k),*(q2-k));//根据数组地址判断是否重末尾赋值
  29.                 printf("%d = %d\n",&*(q1+k),*(q1+k));
  30.         }
  31.         printf("Conversion success!\n");
  32. }

  33. void printf_io(int *q1)
  34. {
  35.         int j;
  36.         printf("output array reversion sort:\n");
  37.         for(j = 0;j<M;j++)
  38.         {
  39.                 if(j == 9)
  40.                 {
  41.                         printf("%d",*(q1+j));//输出最后一个数组元素去掉-->
  42.                 }
  43.                 else
  44.                 {
  45.                         printf("%d-->",*(q1+j));
  46.                 }
  47.         }
  48.         printf("\n");
  49. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 22:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表