免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 24683002 | 回复: 24683002

[Linux] linux编程 [复制链接]

论坛徽章:
1
2015亚冠之塔什干火车头
日期:2015-06-08 10:15:34
发表于 2015-03-13 09:18 |显示全部楼层
有一个整形数组如 int a[10];有一个函数foo(char *str),来调用这个整形数组,但是foo函数的参数是char型而数组的类型是整型,这个该怎么办啊,请他家帮我看看,谢谢了

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-13 09:37 |显示全部楼层
本帖最后由 zsszss0000 于 2015-03-13 09:37 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void func(char * str)
  4. {
  5.     int *pint;
  6.     pint=(int *)str;
  7.     int i;
  8.     for(i=0;i<10;i++)
  9.     {   
  10.         printf ( "a[0] is %d\n",*pint );
  11.         pint++;
  12.     }   
  13. }

  14. int main ( int argc, char *argv[] )
  15. {
  16.     int a[10]={1,2,3,4,5,6,7,8,9,10};

  17.     func((char *)a);

  18.     return EXIT_SUCCESS;
  19. }/* end of function main  */
复制代码

论坛徽章:
1
2015亚冠之塔什干火车头
日期:2015-06-08 10:15:34
发表于 2015-03-13 10:10 |显示全部楼层
回复 2# zsszss0000
谢谢!我遇到列一个面试题,当时我就是这样强制转化了一下,他直接问我这样可以吗?让我在想想,我一直没有明白,所以问问,我刚才试过你的代码了,是可以的,我想知道这个之间的强制转化是可以的吗?foo((char*)a)


   

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-13 11:07 |显示全部楼层
会不会是大小端的问题?回复 3# mt_glass


   

论坛徽章:
1
2015亚冠之塔什干火车头
日期:2015-06-08 10:15:34
发表于 2015-03-13 11:32 |显示全部楼层
回复 4# zsszss0000
这个我也不是很清楚,现在我都没有思路了,从哪开始着手这个问题了


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2015-03-13 15:43 |显示全部楼层
要看foo的作用以及这样调用的目的是什么,然后才知道该怎么处理

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-13 16:19 |显示全部楼层
那肯定是让他处理整形数之类的回复 6# 羽剑天涯


   

论坛徽章:
1
2015亚冠之塔什干火车头
日期:2015-06-08 10:15:34
发表于 2015-03-13 19:30 |显示全部楼层
回复 6# 羽剑天涯
直接这样一问,我就说强制转化一下,结果让我在想想,我就懵了,不知道他想知道什么了?

   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2015-03-14 22:42 |显示全部楼层
如果foo(char*)是对char *数组进行一种操作,每个元素是char(如默认长度是10,对其排序),而另外一个整数数组a[10],也需要进行同类型的操作,不考虑溢出危险,可以定义一个char b[10],依次把a[10]各元素赋值过去,然后,再传递b数组进去,执行完,在把b依次赋值给a。
不过如果foo不是这个作用(如计算字符串的长度),而且这样调用的目的也不是这个foo原始的功能,就要弄清楚foo的作用及这样做得目的了
回复 8# mt_glass

论坛徽章:
1
2015亚冠之塔什干火车头
日期:2015-06-08 10:15:34
发表于 2015-03-28 09:26 |显示全部楼层
回复 9# 羽剑天涯
谢谢了,学习了。


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP