A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 变味的面包 于 2015-4-29 14:55 编辑
  1. #include <stdio.h>
  2. void fun(int a[4])
  3. {
  4.     int i,t;
  5.     for(i=0;i<2;i++)
  6.     {
  7.         t=a[i];
  8.         a[i]=a[3-i];
  9.         a[3-i]=t;
  10.     }
  11. }
  12. int main()
  13. {
  14.     int a[4]={4,5,6,7},i;
  15.     printf("逆序前:\n");
  16.     for(i=0;i<4;i++)
  17.         printf("%3d",a[i]);
  18.     putchar('\0');
  19.     printf("\n逆序后:\n");
  20.     fun(a);
  21.     for(i=0;i<4;i++)
  22.         printf("%3d",a[i]);
  23.     putchar('\0');
  24.     return 0;
  25. }
复制代码
上面代码是完全可行的  但是用下面的代码就不行了  小伙伴们看一下为什么?
  1. #include<stdio.h>
  2. #include<string.h>
  3. //倒序
  4. void fun(int a[])
  5. {
  6.     int temp;
  7.    
  8. // int count = sizeof(a)/sizeof(int); 断点测试这里count = 2
  9.     int count = strlen(a);

  10.     for(int j=0;j<(count)/2;j++)
  11.     {
  12.         temp = a[(j)];
  13.         a[(j)] = a[(count-j-1)];
  14.         a[(count-j-1)] = temp;
  15.     }
  16. }

  17. int main()
  18. {
  19.     char a[] = {4,5,6,7,8};
  20.    
  21.     // 倒序前打印
  22.     int count = strlen(a);

  23.     for(int i=0;i<count;i++)
  24.     {
  25.         printf("%d ",a[i]);
  26.     }
  27.     printf("\n");
  28.    
  29.     //倒序
  30.     fun( a );

  31.     //倒序后打印
  32.     for(int i = 0;i < 5;i ++)
  33.     {
  34.         printf("%d ",a[i]);
  35.     }
  36.     printf("\n");
  37.    
  38.     return 0;
  39. }
复制代码

2 个回复

正序浏览
呜呜  都木人在吗?

点评

strlen()这个函数 是用于字符串的吧 能用到整形数组吗? 我很怀疑  发表于 2015-4-24 16:20
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马