none
菜鸟求助:请哪位高手解释一下变量定义时的问题 RRS feed

  • 问题

  •    一般在定义指针变量时都是这样:类型 * 或者 类型* ,但是我试着采用这种方式定义: (int*) ptr 或者其他类似的定义时编译就通不过,我认为是应该可以通过的,因为int *ptr 等价于 (int*) ptr 的。我百思不得其解,请高手解释一下。谢谢

    2008年12月22日 3:52

答案

  • 你好,

       (int*) ptr的语义是将ptr用c语言的转换方式进行转换。将ptr的类型转换为int*。不再是变量声明或定义。

    2008年12月22日 5:13
    版主
  •  

    (int*) ptr ,这是把ptr强制类型转换成int*的,因为在这里,括号是起强制类型转换的作用。
    2008年12月22日 5:19

全部回复

  • 你好,

       (int*) ptr的语义是将ptr用c语言的转换方式进行转换。将ptr的类型转换为int*。不再是变量声明或定义。

    2008年12月22日 5:13
    版主
  •  

    (int*) ptr ,这是把ptr强制类型转换成int*的,因为在这里,括号是起强制类型转换的作用。
    2008年12月22日 5:19