设为首页 加入收藏

TOP

指针在函数中的调用实例(三)
2014-07-19 22:52:23 来源: 作者: 【 】 浏览:175
Tags:指针 函数 调用 实例
指针在函数中的调用实例_<a href=http://www.cppentry.com/list.php?fid-45-page-1.htm style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C语言</a>教程_<a href=http://www.cppentry.com style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C++</a>教程_<a href=http://www.cppentry.com/list.php?fid-45-page-1.htm style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C语言</a>培训_<a href=http://www.cppentry.com style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C++</a>教程培训_C/C++频道_中国IT实验室
中国IT实验室C/C++频道
首页资讯动态C语言C++编程C∕C++开发应用VC++C++Builder专题下载博客论坛
您现在的位置: 中国IT实验室 >> C∕C++频道 >> C语言 >> 编程技巧 >> 正文

指针在函数中的调用实例

 

  后来我又调试发现:如果存储的时候也是定义Ptr为float型指针的,那么输出时调用f((float *)(Ptr))便可正确输出结果,而存储时是以unsigned int型指针存储的,则调用的时候应该这样调用:f((*unsigned int *)Ptr) 。

  对于上述问题,后来我又想到是否可以通过结构体来定义对应的变量,结果还是不行。

  #include "stdio.h"

  #define N 8

  union BufRam

  {

  unsigned int IntRam;

  float FloatRam;

  }Buf[N];

  void f(float x[N])

  {

  int i;

  for(i=0;i

  {

  x[i]=x[i]*i;

  printf("%f\n",x[i]);

  }

  }

  void main(void)

  {

  int i;

  for(i=0;i

  {

  Buf[i].IntRam=i;

  }

  for(i=0;i

  {

  //Buf[i].FloatRam=Buf[i].IntRam; //若增加这条语句,则下面的处理即可成功了。

  }

  //下面调用函数f 处理外部RAM中的数

  f(&(Buf[0].FloatRam)); //请问:这样调用函数有问题吗

  }

  运行结果同上图A1,

  若调用程序中的这条语句Buf[i].FloatRam=Buf[i].IntRam,则运行结果同上图A2。

  这说明即使是定义结构体类型也是不行的啊,因为整型变量与浮点型变量的存储结构是不同的,这一点是我经过多天的理解自己得出的,其可靠性尚需官方或者资深工程师明确说明。

上一页  [1] [2] 

【责编:peter】

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 社区讨论
 博客论点
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇time_t 和 tm 结.. 下一篇C语言对数组名取地址

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)
·每日一道面试题-多线 (2025-12-26 06:20:17)
·java项目中哪些地方 (2025-12-26 06:20:14)