好不容易偷闲,去逛了下论坛,这手贱的又点到了技术区,看了个哥们的问题,就是const和typedef结合在一起会出现什么情况,那百度和360结合会是什么况。。。。

描述下问题:

typedef int* p2i;

int a = 2;

int b = 3;

int c = 4;

const int *pa = &a;

//不能用pa修改a的值,*pa = value

const p2i pb = &b;

//pb不能指向其他地址,pb = value

p2i const pc = &c;

//pc不能指向其他地址,同上。

这里涉及了两点:(1)const的先左还是先右结合 (2)typedef的效果 (3)变量的类型

(1)const 向左走向右走:const的意义就是只读,读书,“只读经典型”,就是const先向右走,如果右侧有类型符,如int,float、、之流,就跟类型符结合。若没有,则向左走,跟左侧的*符结合。

(2)typedef与#define有区别,其中之一就是typedef封装性,或者叫原子性,即通过typedef将目标封装成整体,并起了个新的名字(典型贴牌山寨机)。但效用等价。

对于const  int  *pa = &a;

(3)变量的类型:就是这是个什么变量,找到变量,查看其右,若为(),则表示函数,若为 [ ] 则为数组,查看其左,左侧为 * ,则表示指向 XXoo 的指针。

则const int  *pa = &a,const与类型为int 的类型结合,pa与 *结合,综合起来:pa是个指针,一个指向只读整形的指针。即pa指向的内容不能变。但pa的指向可以变。

const   p2i  pb = &b:pb右侧无(),[ ],即pb非数组,也不是函数,左侧没见到指针符号 *(被封装了),故pb仅仅是个变量,类型为只读p2i型的变量,将p2i的意义加进去,pb就是个只读指针变量,即指针的指向不能改变,指向的地址里的内容可以改变。

对于p2i const  pc =&c,理解了typedef的封装性,其实雷同于 int const  x 和const int x ,所以,这种情况的意义同上。

c语言函数打印零星,C语言零星笔记--(const、typedef)相关推荐

  1. c语言函数官网,c语言函数

    c语言函数[编辑] 概述 c语言函数包括多种函数.它的出现方便了人们对很多数据的计算,节省了大量的时间,方便了人们的计算,为人们提供了一个简便的,时用的函数运算.也在一定的领域中有一个突破性进步,但是 ...

  2. c语言函数大全doc,c语言函数大全.doc

    c语言函数大全c语言函数大全 getchar,getch 原型:extern int getchar(void); 用法:#include 功能:读键 说明:从键盘上读取一个键,并返回该键的键值 ge ...

  3. C语言函数手册:c语言库函数大全|C语言标准函数库|c语言常用函数查询

    http://see.xidian.edu.cn/cpp/u/hanshu/ 本函数手册涵盖了常用的C语言函数,从函数功能.参数和返回值三方面做了详细的说明,并且给出了大量实例,加深读者的理解. 为了 ...

  4. c语言函数指针学习心得,c语言 函数指针 学习C语言笔记

    c语言 函数指针 大一学的C语言,课,算是学了一遍,后来接触Java,C++,易语言,python,还有写单片机用的类似C语言,可以说后来根本没有好好学,C也忘个差不多了,但是这次我课选了OC,不喜欢 ...

  5. c语言函数助手使用,C语言函数助手怎么查询函数?

    许多网友向小编反映不知道怎么使用C语言函数助手?哪里有C语言函数助手的使用教程?今天极速小编为大家提供一个使用教程,希望对大家有帮助!首先我们下载C语言函数助手(下载地址:http://www.jis ...

  6. c语言 函数 ppt,《C语言函数》PPT课件.ppt

    <<C语言函数>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<C语言函数>PPT课件.ppt(17页珍藏版)>请在装配图网上搜索. 1.回顾 ...

  7. c语言 函数的声明,C语言中的函数声明

    看了C陷阱与缺陷,第一个给我震撼的就是理解函数声明了,下面是我的理解. 1.理解函数声明 为了模拟开机启动时的情形,我们必须设计出一个C语句,以显示调用位于地址0的子例程.调用语句如下: (*(voi ...

  8. C语言函数替代strlen,C语言实现strlen函数的几种方法【转】

    今天偶然看到了一个实现strlen函数的方法,也实际练习了一下,挺有意义的,其实现的一些思想值得学习,记录一下吧.我这里除了写两个比较巧妙的递归实现之外,也写了另外一种常规的方式. 传说常见的一个笔试 ...

  9. C语言函数打印数字金字塔

    一,目标:输入一个1~9的数字(n)打印1~n的一个数字金字塔例子如下 输入:5 输出: 1 2      2 3      3      3 4      4      4     4 5      ...

最新文章

  1. ⑥python模块初识、pyc和PyCodeObject
  2. FPGA等效门数的计算方法
  3. 锐捷路由器--多线路应用路由
  4. Kubernetes存储之ConfigMap
  5. 转:Chrome渲染分析之Timeline工具的使用
  6. Kerberos认证过程学习理解
  7. 51单片机数码管小数点c语言,求助一个51单片机控制的数码管计算器带小数点功能的...
  8. Machine Learning - VII. Regularization规格化 (Week 3)
  9. python3 写入excel_python3读取、写入、追加写入excel文件
  10. RoboWare Studio使用的部分问题
  11. C# 压缩解压Zip文件
  12. USB打印服务器作用,沁恒股份USB打印机服务器方案概述
  13. 通过stm32cubemx配置DCMI驱动ov5640摄像头
  14. 如何将div拼接成html代码,给div拼接html 拼接字符串
  15. 扒一扒那些叫欧拉的定理们(十一)——欧拉数论定理
  16. 网站被攻击了怎么处理
  17. 哈佛结构和冯·诺依曼结构
  18. windows安装Pillow报错找不到zlib
  19. android 购物车实现,Android Studio实现简单购物车功能
  20. AtCoder题解——Beginner Contest 170——F - Pond Skater

热门文章

  1. Table of Contents - Tomcat
  2. 99.两个时钟不同步的设备怎么通信?
  3. Fedora 33更新异常:Errors during downloading metadata for repository ‘updates‘
  4. 面试必备之:MFC socket编程(浅出+深度:服务端和客户端端口问题)
  5. new一个xssfworkbook时出错_java用poi操作excel的时候,new XSSFWorkbook,总是报错?
  6. 微信sdk服务器支付文档,微信支付-普通下单开发者文档
  7. Centos7 防火墙开放端口,查看状态,查看开放端口
  8. 035_Breadcrumb面包屑
  9. 022_Table表格
  10. 004_LoadOnStartup