typedef 的一些用法

最近重新学习c++的一些知识点。

typedef

与#define对比来说

typedef是定义了一种新的类型,#define只是简单的替换

typedef char * CHAR_POINTER 就是把char *整体定义成了一种类型

具体操作

typedef char * CHAR_POINTER;

CHAR_POINTER p1,p2;

等同于

char*p1,*p2;

上面CHAR_POINTER p1,p2;一句就和int a,b;的作用相似,作为一个整体出现,不会再受指针语法的约束了

第二个比较容易混淆的例子

1.typedef char * pStr;

2.char string[4] = "abc";

3.const char *p1 = string;

4.const pStr p2 = string;

5.p1++;

6.p2++;

上面的例子里面

第三行 const 是修饰的char,所以p1指针可以改变指向的位置,但是不能修改指向的值。

第四行 const 是修饰的char *整体,所以p2指针是一个const指针,不可以改变指向的位置,p2++也就不正确。

使用typedef第二个知识点就是用来简化声明,使声明更加易懂。

详见http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html

原文地址:https://www.cnblogs.com/phoenix-route/p/4054196.html