Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1050904
  • 博文数量: 573
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 66
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-28 16:21
文章分类

全部博文(573)

文章存档

2018年(3)

2016年(48)

2015年(522)

分类: C/C++

2015-12-02 17:10:02


点击(此处)折叠或打开

  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>

  4. int compare_f(const void * fi1, const void * fi2)
  5. {
  6.         /*
  7.         需求: 从本题中,可知:fi1,fi2 实际是指向 double类型的指针。
  8.         下面函数体中,会使用 *fi1, *fi2来取得所指的数据。
  9.         所以,必须将上面的fi1,fi2 转化成 double* 型的指针。
  10.         
  11.         const的特性:
  12.         指针指向的内容是只读的,但是指针不是只读的,
  13.         所以可以对指针的类型,进行强制类型转换,不可以对指针指向的内容强制转换。
  14.         */
  15.         //double f1 = (double)(*fi1);    //错误,不可以对指针指向的内容强制转换
  16.         //double f2 = (double)(*fi2);    //错误,不可以对指针指向的内容强制转换
  17.         
  18.         //double * df1 = (double *)fi1;    //可以对指针的类型,进行强制类型转换。指针指向的内容const属性丢失了,有缺陷。
  19.         //double * df2 = (double *)fi2;    //可以对指针的类型,进行强制类型转换

  20.         const double * f1 = (const double *)fi1;    //可以对指针的类型,进行强制类型转换。指针指向的内容const属性还有,完美。
  21.         const double * f2 = (const double *)fi2;    //可以对指针的类型,进行强制类型转换

  22.         if((*f1 - *f2) > 0.005)
  23.         {
  24.                 return -1;    
  25.         }
  26.         else if((*f1 - *f2) < -0.005)
  27.         {
  28.                 return 1;
  29.         }
  30.         else
  31.         {
  32.                 return 0;
  33.         }
  34. }

  35. int main(int argc, char * * argv)
  36. {
  37.         char buf[128];
  38.         int num = 128;
  39.         
  40.         //qsort((void*)buf, num, sizeof(double), compare_f);
  41.         printf("sizeof(char *)=[%d]\n", sizeof(char *));
  42.         
  43.         
  44.         return 0;
  45. }

阅读(396) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~