typedef定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。比如:

先定义:

typedef char* PSTR;

然后:

int mystrcmp(const PSTR, const PSTR);

const PSTR实际上相当于const char吗?不是的,它实际上相当于char const。

原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。

简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。

那么const char* 与 char* const有什么区别吗:

答案是:有,而且区别很大。

const char* p;说明p指向的内容为常量字符串,即*p不能更改。

char* const p;说明p是一个常量指针,p指向的地址不能更改。

typedef的陷阱的更多相关文章

  1. typedef用法和陷阱

    一.typedef的用法 1.用typedef来声明新的类型名,来代替已有的类型名,也就是给类型起别名.比如 typedef float REAL; //用REAL来代表float类型 REAL a; ...

  2. typedef 深入剖析

    typedef是一个我们常常会用到的关键字,而这个关键字有许多陷阱或者说许多不为我们深入理解的地方.很多书上都是很简单地一笔代过,并没有真正地让我们理解这个关键字.本文对其进行详细地说明.综合网络上找 ...

  3. C++ 知识点1

    typedef的陷阱 严格来说typedef并不是定义别名,而是定义类型,比如typedef int a;按照大部分书本说来,就是把a看做int,这种说法初学看来是正确的,也易于理解,但是遇到type ...

  4. 揭秘 typedef四用途与两陷阱[转]

    自 http://niehan.blog.techweb.com.cn/archives/325.html typedef用来声明一个别名,typedef后面的语法,是一个声明.本来笔者以为这里不会产 ...

  5. typedef

    第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, ...

  6. typedef 揭秘

    typedef用来声明一个别名,typedef关键字后面是一个声明.语法上typedef属于存储类声明说明符 一.引言 如果你理解typedef的简单形式: typedef int PARA; 这种形 ...

  7. C语言typedef的用法(转)

    http://www.cnblogs.com/afarmer/archive/2011/05/05/2038201.html 一.基本概念剖析 int* (*a[5])(int, char*);    ...

  8. C++ std::map::erase用法及其陷阱

    1.引入: STL的map中有一个erase方法用来从一个map中删除制定的节点 eg: map<string,string> mapTest; typedef map<string ...

  9. typedef和#define的用法与区别

    typedef和#define的用法与区别 typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程 ...

随机推荐

  1. PHP __construct() 函数

    实例 函数创建一个新的 SimpleXMLElement 对象,然后输出 body 节点的内容:高佣联盟 www.cgewang.com <?php $note=<<<XML ...

  2. 5.29 省选模拟赛 树的染色 dp 最优性优化

    LINK:树的染色 考场上以为这道题要爆蛋了 没想到 推出正解来了. 反正是先写了爆搜的 爆搜最近越写越熟练了 容易想到dp 容易设出状态 f[i][j]表示以i为根的子树内白色的值为j此时黑色的值怎 ...

  3. CenterNet文献调研记录

    心仪院校导师任务之一,文献调研记录. 本文部分思路参考: 1. Anchor-Free 2. https://zhuanlan.zhihu.com/p/66048276 3. https://blog ...

  4. Linux安装python 3

    方法: 1.官网下载地址:http://www.python.org/download/ 2.rz -y 上传到Linux  解压tar -xvzf Python-3.5.1.tgz  进入目录   ...

  5. 洛谷P3513 [POI2011]KON-Conspiracy

    洛谷P3513 [POI2011]KON-Conspiracy 题目描述 Byteotia的领土被占领了,国王Byteasar正在打算组织秘密抵抗运动. 国王需要选一些人来进行这场运动,而这些人被分为 ...

  6. 算法面试题:一个List<Student>,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点!

    算法面试题:一个List,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点! 解题思路 这是群里某位小伙伴去面试碰到的面试题,从题目本身来看,面试官应该是要考察面试者对泛型 Lis ...

  7. Eclipse变得很卡

    半个月前,发现Eclipse很卡很卡,尤其在按住Ctrl选择方法的实现类的时候,电脑的反应速度让开发者无法忍受. Eclipse还经常未响应状态. 开始以为Eclipse的运行内存设置小了,把ecli ...

  8. 栈及其简单应用(python代码)

    栈属于线性结构(Linear Struncture),要搞清楚这个概念,首先要明白”栈“原来的意思,如此才能把握本质."栈“者,存储货物或供旅客住宿的地方,可引申为仓库.中转站,所以引入到计 ...

  9. C#LeetCode刷题-树状数组

    树状数组篇 # 题名 刷题 通过率 难度 218 天际线问题   32.7% 困难 307 区域和检索 - 数组可修改   42.3% 中等 315 计算右侧小于当前元素的个数   31.9% 困难 ...

  10. LeetCode 873. 最长的斐波那契子序列的长度 题目详解

    题目详情 如果序列 X_1, X_2, ..., X_n 满足下列条件,就说它是 斐波那契式 的: n >= 3 对于所有 i + 2 <= n,都有 X_i + X_{i+1} = X_ ...