typedef用法注意事项

原创 2007年09月28日 15:33:00
 
  1. #include <iostream.h>
  2.  int main(void)
  3. {
  4.       int i = 20;
  5.       typedef int *myint;
  6.       const myint mintval = &i;
  7.       cout<<*mintval;
  8.       return 0;
  9. }//运行结果显示为 20

如果将typedef看成宏展开,即
        const myint mint ==► const int* mintval 
//mintval是指向const int的指针
那么也就说mintval指向的int对象的值是不能改变的。
修改代码如下验证这种假设:

    1. #include <iostream.h>
    2.  int main(void)
    3. {
    4.       int i = 20;
    5.       typedef int *myint;
    6.       const myint mintval = &i;
    7.       (*mintval)++;
    8.       cout<<*mintval;
    9.       return 0;
    10. }//运行结果显示为 21

这段代码不但编译通过,并且运行的结果也显示mintval所指向的int对象i被修改了。
这也就是说mintval的类型不是指向const int的指针。

实际上关于const myint mintval的含义应该这样看:
const修饰mintval的类型, 而mintval是一个指向int的指针,
所以const myint mintval表示mintval是指向int的const指针。

修改代码如下验证上述结论:

  1. #include <iostream.h>
  2.  int main(void)
  3. {
  4.       int i = 20;
  5.       int i2 = 30;
  6.       typedef int *myint;
  7.       const myint mintval = &i;
  8.       mintval = &i2;   //编译错误:error C2166: l-value specifies const object
  9.       cout<<*mintval;
  10.       return 0;
  11. }//无法运行

上述结果表明mintval是指向int的const指针的结论是正确的

 

typedef巧用和注意事项

-------------------------------------------------- typedef声明,简称typedef,为现有类型创建一个新的名字,或称为类型别名,在结构体...
  • ghevinn
  • ghevinn
  • 2014年04月30日 14:58
  • 1706

c语言中typedef的几种用法

几种用法:1.常规变量类型定义例如:typedef unsigned char uchar 描述:uchar等价于unsigned char类型定义 uchar c声明等于unsigned char...
  • drdairen
  • drdairen
  • 2016年07月07日 09:41
  • 8445

typedef_struct_用法详解和小结

1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用type...
  • fushiqianxun
  • fushiqianxun
  • 2012年08月31日 17:01
  • 1322

一次读懂C语言typedef的用法

要学懂typedef,你要有一本讲c的语法数,同时配上这篇文章即可。 本文将typedef总结为四个用途,两个陷阱...
  • u012676933
  • u012676933
  • 2016年11月08日 10:15
  • 697

C语言声明及typedef常见用法

C语言声明的优先级规则 A 声明从它的名字开始读取,然后按照优先级顺序依次读取 B 优先级从高到底依次是:   B.1 声明中被括号括起来的那部分   B.2 后缀操作符:       括号()表示这...
  • wangpeihuixyz
  • wangpeihuixyz
  • 2014年04月03日 23:20
  • 1191

关于typedef的用法总结(真理真是越辩越明)

不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些...
  • u012548562
  • u012548562
  • 2014年10月28日 10:45
  • 1076

我所认为的 typedef关键字 的用法

typedef的通俗理解:     为现有类型创建一个新的名字。     typedef定义从关键字typedef开始,后面跟数据类型和标识符。标识符和数据类型没有引入新的标识符,而是现有类型数据...
  • Strong_HCyouth
  • Strong_HCyouth
  • 2016年12月02日 20:40
  • 230

typedef , enum , typedef enum 理解

转载地址: http://blog.csdn.net/lvxiangan/article/details/20939379 enum和enum typedef 在IOS中的使用 ...
  • qiuyinthree
  • qiuyinthree
  • 2015年01月19日 23:13
  • 2219

C语言 typedef的使用

一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include 2 3 typedef int Integer; ...
  • VNanyesheshou
  • VNanyesheshou
  • 2016年01月10日 20:52
  • 656

IOS开发之----enum与typedef enum的用法

一,两者的用法        枚举类型定义用关键字enum标识,形式为:  enum 标识符  {       枚举数据表 }; 枚举数据(枚举常量)是一些特定的标识符,标识符代表什么含义,完全...
  • LVXIANGAN
  • LVXIANGAN
  • 2014年03月10日 17:54
  • 34555
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:typedef用法注意事项
举报原因:
原因补充:

(最多只允许输入30个字)