constkeyword

const=read only,修饰的为仅仅读变量而不是常量。const修饰的变量不能用作数组的维数也不能放在switch语句的case:之后。

主要作用有:

1.通过把不希望被改动的变量或參数用const来修饰。编译器会保护这些变量不被改动增强系统的可靠性;
2.增强代码的可读性

  1. const int a;      //a为常量不能被改动
  2. int const a;      //a为常量不能被改动
  3. const int *a;     //a为指向一个常量的指针,a的值是能够变量的
  4. int *const a;     //const修饰a,a为一个指向整型变量的指针常量

定义时必须进行初始化赋值,一经定义不能改动。上述代码1、2、4编译时会报错提示未初始化。

const和volatilekeyword的后面若紧跟类型说明符则作用于类型说明符。在其它情况下。作用于它左边紧邻的指针星号。

                                                                                                                                                                                                                                                                                                                    

typedef 与 define的差别体如今两个方面
1.define能够对定义的宏类型名进行扩展,而typedef不能够
  1. #define peach int
  2. unsigned peach i;//没有问题
  3. typedef int peach;
  4. unsiged peach i;//错误,非法

definekeyword仅仅是简单的字符替换,而typedef能够看成是对类型的一种封装。为现有类型取个新名字。

2在连续几个变量的声明中仅仅有typedef能够保证类型的一致性
  1. #define int_ptr int *;
  2. int_ptr chalk,cheese;
chalk为int *类型。而cheese为int型。由于define仅仅是简单的字符串替换

                                                                                                                                                                                         

typedef的特殊使用方式

用来声明函数指针

  1. typedef void(*ptr_fun) (int);
  2. //ptr_fun是一个函数指针,參数为int型。返回值为void
  3. ptr_fun sinal(int,ptr_fun)
  4. //sinal是一个函数,接受int和ptr_fun两个类型的參数,返回值为ptr_fun

typedef int A[5];

//a是一个指向有5个元素的整型数组的数组指针。A代表的类型是(int)[5] 。也即A b={1,2,3,4,5};

const、typedef 、 define总结的更多相关文章

  1. 在php中定义常量时,const与define的区别?

    问]在php中定义常量时,const与define的区别?  [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...

  2. 面试问题5:const 与 define 宏定义之间的区别

    问题描述:const 与 define 宏定义之间的区别 (1) 编译器处理方式不同     define宏是在预处理阶段展开:     const常量是编译运行阶段使用: (2) 类型和安全检查不同 ...

  3. 关于const和define的内存分配问题的总结

    关于const和define的内存分配问题 const与#define宏定义的区别----C语言深度剖析 1,  const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量,存放在静 ...

  4. iOS—— static和const联合使用;使用static const 与 #define

    static和const联合使用:   static将一个全局变量变成局部变量   const将一个局部变量变成局部常量 // 定义了一个局部常量      static const CGFloat ...

  5. 实例讲述PHP面向对象的特性;;;php中const与define的使用区别

    php中const与define的使用区别 1.const:类成员变量定义,一旦定义且不能改变其值. define:定义全局常量,在任何地方都可以访问.2.define:不能在类中定义,而const可 ...

  6. const和#define常量的区别

    (1) 编译器处理方式不同 define宏是在预处理阶段展开. const常量是编译运行阶段使用. (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开. const常量有 ...

  7. 【编程基础】const与#define的区别

    [前言] 相信大家看别人代码的时候都遇到过,有人用#define定义,也有人用const定义. 那么两者的区别到底是什么呢?哪个更好用呢? 网上查了又查,下面总结一下. [总结] 编译器处理方式不同 ...

  8. 函数定义从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等

    今天一直在学习函数定义之类的问题,下午正好有机会和大家共享一下. 一.bool 类型 逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC+ ...

  9. const和#define的区别

    在刷题的时候经常遇到定义全局常量我一般都是用#define(可能是因为很少接触const的原因) 在昨天做到51nod1082时照常暴力用#define定义最大.可是提交超时..... 后来看他人写的 ...

  10. const和define的使用区别

    在PHP中(PHP 4及以后),我们可以使用函数define()来定义常量,例如: <?php define('PI',3.14159);  //定义一个名为PI的常量 echo PI;     ...

随机推荐

  1. [java开发篇][代码规范]

    http://www.hawstein.com/posts/google-java-style.html Google Java编程风格指南 January 20, 2014 作者:Hawstein出 ...

  2. Docker Caffe部署

    Caffe是一个清晰而高效的深度学习框架,纯粹的C++/CUDA架构,支持命令行.Python和MATLAB接口:可以在CPU和GPU直接无缝切换 Caffe的优势 上手快:模型与相应优化都是以文本形 ...

  3. [luoguP3302] [SDOI2013]森林(主席树 + 启发式合并 + lca)

    传送门 显然树上第k大直接主席树 如果连边的话,我们重构小的那一棵,连到另一棵上. 说起来简单,调了我一晚上. 总的来说3个错误: 1.离散化写错位置写到了后面 2."="写成了& ...

  4. 深入浅出mysql全文随笔

    进入mysql :mysql -uroot -p 1.DDL(Data Definition Languages)语句:数据定义语言 2.DML(Data Manipulation Language) ...

  5. 数据库操作之—— explain 的type解释

    (1)SYSTEM (2)CONST (3)EQ_REF (4)REF (5)REF_OR_NULL (6)RANGE (7)INDEX_SCAN (8)ALL (9)UNIQUE_SUBQUERY ...

  6. SpringBoot重点详解--使用Junit进行单元测试

    目录 添加依赖与配置 ApplicationContext测试 Environment测试 MockBean测试 Controller测试 情况一 情况二 方法一 方法二 本文将对在Springboo ...

  7. uva 11468 AC自动机+概率DP

    #include<cstdio> #include<cstring> #include<queue> #include<cstdio> #include ...

  8. POJ1167 The Buses

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6234   Accepted: 1698 Description A man ...

  9. FootAwesome字体图标

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. angular杂谈

    <element ng-include="filename" onload="expression" autoscroll="expressio ...