精华内容
下载资源
问答
  • const定义常变量

    2021-06-05 10:11:11
    定义了常变量PI,它具有变量的属性,有数据类型,占用存储单元,有地址,可以使用指针指向它,只是,在程序运行期间,这个常变量的值是固定的,不能改变。 所以,在C++编程中,都使用const来取代了用 #define 定义...

    C++提供了const关键字来定义一个“常量”,例如,我们定义一个变量,变量中的数据不可以被修改,那么,可以使用const关键字声明变量,定义变量是“常量”类型。例如:

    const float PI = 3.14159;

           定义了常变量PI,它具有变量的属性,有数据类型,占用存储单元,有地址,可以使用指针指向它,只是,在程序运行期间,这个常变量的值是固定的,不能改变。

    所以,在C++编程中,都使用const来取代了用 #define 定义符号常量的作用。一般把程序中不允许改变值的变量定义为常变量。如下是测试的例子:

           程序运行结果如下:

           可以看到,我们定义了LEN宏,可以使用LEN宏来定义字符数组的长度。

    同时,我们使用const关键字来定义一个常变量MAX_NUM,然后,可以使用MAX_NUM常变量来定义字符数组的长度。如果MAX_NUM是普通的变量,那么,不可以作为字符数组长度的定义。

    而且,不可以修改常变量的数据。例如,修改代码如下:

    编译提示错误,结果如下:

    可以看到,提示MAX_NUM是只读类型。所以,不可以修改常变量的值。

    韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

    展开全文
  • 常变量 枚举 宏定义

    2017-09-28 16:00:09
    常变量 1、const变量常类型变量或对象是不能被更新 2、便于进行类型检查,编译器遇见const就会知道是一个常量 不允许修改 3、很方便进行参数调整和修改 和宏定义一样 一边都变 4、保护被修饰部分 ...

    常变量  

    1、const变量常类型的变量或对象是不能被更新的

    2、便于进行类型检查,编译器遇见const就会知道是一个常量 不允许修改

    3、很方便的进行参数的调整和修改 和宏定义一样 一边都变

    4、保护被修饰的部分 防止意外的修改 增强程序健壮性

    5、节省空间,避免不必要的内存分配  const只是给出对应的内存地址  而不是和宏定义一样给出立即数 所以const定义的常量在程序运行过程中只有一份拷贝

    6、编译器通常不为const常量分配存储空间 而是保存在符号表中,这使得他成为一个编译期间的常量 没有存储与读内存的操作 效率更高

    枚举

    1、枚举不是变量是常量

    2、枚举元素是有值的

    枚举型是预处理指令#define 的替代


    宏定义

    编译之前预处理 进行替换

    宏名一般大写

    可以用#undef终止宏定义的作用域

    宏定义不分配内存 变量定义分配内存

    宏定义不存在类型问题 参数也是无类型的

    一改都改

    展开全文
  • 头文件中变量如果没有初始化就是...再说到这些变量的声明与定义前,要知道这些变量的链接性: 外部全局变量 外部连接性 可以被extern 静态全局变量(static) 内部连接性 不能被extern 全局变量(const) 内部连接

    头文件中变量如果没有初始化就是声明;初始化了就是定义。在C++语言中,变量有且只能有一次定义,但是可以声明多次,使用变量前必须定义或声明。

    再说到这些变量的声明与定义前,要知道这些变量的链接性:

    外部全局变量                  外部连接性   可以被extern

    静态全局变量(static)  内部连接性   不能被extern

    常全局变量(const)      内部连接性  在之前加上extern就变成了外部连接性,就可以被其他的文件extern了


    声明:(可以放在头文件)没有开辟内存的定义,类型定义,比如类的定义,结构体的定义,它是定义一个数据类型而

    定义:(不可放在头文件)开辟了内存的定义,数据定义,比如类对象定义,变量定义

    一般来说:

    不分配内存的,放在头文件
    分配内存的放在cpp文件,防止重复定义,当然也要看变量的连接性,内部连接性的可以放在头文件定义。

      变量、函数、类,在使用之前都必须声明,包含头文件,如果a.h包含了b.h,在a.h里面就对b.h里面的声明重新声明了,这也是不能在头文件里面定义变量与函数的原因(防止重复定义),当然内部链接性的变量和内联函数除外。


           C++是不允许在头文件里定义一个外部全局变量(声明可以,比如在源文件定义,在头文件extern声明,像int a;这样不算声明,是定义,全局变量默认赋值0),因为当这个头文件被多个别的文件(.cpp或.h)包含的时候,会重复定义这个全局变量,而外部全局变量是外部连接性,别的文件可以互相访问地址,这个与变量有且只能有一次定义(单一定义规则)矛盾,会造成编译出错,即使你在其他的文件里使用extern都不行,因为是其他文件包含这个定义了外部全局变量的头文件。若是真的需要外部全局变量,可以在源文件定义一个外部全局变量,在该源文件的头文件extern声明这个变量,或者别的包含这个头文件的文件里extern声明这个变量,这样变量只是在源文件你定义一次,其他地方的都只是声明,调用的地址还是那个定义了的源文件里面开辟的------如:b.h,c.h都包含了a.h,这时候可以在a.cpp里面定义全局,在a.h文件extern下就行,这样b.h,c.h就都能用了,或者在b.h,c.h以及他们的源文件extern也可以。

    对于static,const全局变量,则可以定义在头文件里,因为它们的连接性为内部,它们的地址只有在本文件里访问,即使这个头文件被其他的文件(.cpp或.h)包含,虽然重复定义,  c++ primer里讲的const变量定义时默认为文件的局部变量(内部连接性),当头文件中定义了const变量后每个包含该头文件的文件都有了自己的const变量。这与单一定义规则不矛盾,static也是同样,但是const的连接性可变,在const变量前面加上extern后,就变成全局变量,外部连接性,这时候要注意包含的问题。  而在.cpp文件里定义的const或者static变量,是不可以被别的文件访问的。(注意.h    .cpp等之间的包含关系)--------------------------------extern用于互不包含的文件里,或者被包含的文件。
    包含意味着重新定义,但是对于互不包含的文件不可以定义同名的外部全局变量,外部全局变量属于外部连接性,这样就导致了重定义!当然加上static或者const就可以,这里有个全局存储区的区分------http://blog.csdn.net/u010177010/article/details/50737429,内部链接的变量地址所在的存储区跟外部链接所在的存储区是不同的,但是都属于全局存储区!

        对于static,const全局变量,如果在两个互不包含的文件里定义了相同的变量,第三个文件包含了这两个文件,就会出错,因为包含意味着重定义,同个内存块不可能有两个相同名字的内存。

    总之,编译是否出错,看的是  变量的连接性以及是否重定义


    展开全文
  • 用常指针指向常变量实际上,C++规定只能用指向常变量的指针指向常变量,普通指针指向它就会报错,原因也很容易理解,我们用普通指针指向常变量之后,有可能就会进行改变常变量数值的操作,这样做是不被允许的。...
  • 符号常量只是用一个符号代替一个字符串,在预编译时把所有符号常量替换为所指定的字符串,它没有类型,在内存中并...常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可以用sizeof测出其长度 ...

    符号常量只是用一个符号代替一个字符串,在预编译时把所有符号常量替换为所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元。

    常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可以用sizeof测出其长度

    展开全文
  • C/C++中宏定义常变量的区别

    千次阅读 2016-09-20 11:39:38
    主要介绍宏定义常变量的区别,以及顺便介绍了常引用,还有char *const p、char const *p和 const char *p的区别。
  • C语言结构语言中的关键字变量变量的定义变量的命名规则交换两个变量的值驼峰命名法 C语言结构 上图中我们可以看到最外层是程序,内部是所有的构成,我们从最里面开始说明。 当我们用计算机语言来描述世界的时候,...
  • Const(定义常变量四个重要性质

    千次阅读 2018-04-16 22:43:40
    这时变量a被称为左值,它具有可以被赋值和读取两种属性倘若定义常变量a,试着重新赋值和读取:可以看到编译器报错,const将变量a变成了右值,即只可被读取,不能写入(重新赋值)2. 数据类型对于const而言是透明...
  • 二、常变量的定义 三、数据类型 前言 本章学习符号常量、常变量、数据类型 内容 #include<stdio.h> 一、符号常量的定义 #definePI3.1415926//表示本文件中从此行开始所有的PI都代表3.1415926. //...
  • 定义指向字符的常变量指针,并让其指向字符串"abc",然后将'a'修改为'z',并输出字符串 提示: 1、语句char * name =”abc”定义了常量字符串”abc”,类型是string literal,直接赋给char*类型指针变量name有...
  • 符号常量和常变量的区别: 常变量:具有变量的特征是存在一个以变量名命名的存储单元,在一般情况下,存储单元中的内容是可以变化的。而对于常变量,在变量的基础上加了一个限定:存储单元中的内容不允许变化,仍然...
  • 常变量

    2014-07-13 19:41:00
    定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(constant variable)。例如, const int a=3; //用const来声明这种变量的值不能改变,指定其值始终为3 在定义...
  • 常变量与符号变量的理解: #define Pi 3.1415926 //定义符号常量 const float pi = 3.1415926 //定义常变量 定义符号常量用#define指令,它是预编译指令它只是用符号代表一个字符串,在预编译时仅是进行字符的替换,...
  • 首先是c++类中const型常量使用: 一: static const例:class A{ static const int a=9;};声明结束后必须添加上赋值。二: const例:class A{const int a;public:A():a(0){} };声明之后需通过构造函数...
  • c++提供了用const定义常变量的方法 2.有默认参数的函数 函数必须在调用之前将默认信息告诉编译系统 一个函数不能既作为重载函数又作为有默认参数的函数,因为在调用时如果少写一个参数会出现二义性 如果在声明函数...
  • 常变量(只读变量)

    2020-11-12 11:22:01
    定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(constant variable)。例如, const int a=3; //用const来声明这种变量的值不能改变,指定其值始终为3 在定义常变量时...
  • shell中变量的定义

    2017-06-04 09:40:23
    一、下面对shell中的变量定义做个基本介绍,shell中的变量,可以分为三类: 1、局部变量 local 用local修饰,多用于函数中,影响范围也在函数体内,如: local var1=1 2、全局变量 不需要任何修饰,影响范围在当前...
  • 常变量的声明

    2014-03-27 10:29:37
    由于变量的定义不是可执行代码,因此要求局部变量的定义必须位于用“{}包围的程序块”的开头,即在可执行代码的前面。 ANSI C规定:可以使用const关键字声明常量,修饰符const可以用在类型说明符前,也可以用在...
  • 类名():常量名(10) //初始化列表来初始化常变量 } Const方法 只读不可修改 可以修改(指针)指向内容。不可修改指针内容 返回值 函数名(形参) const Const对象 Const 类名 对象; 该对象中属性都不能通过该常...
  • 指向常变量的指针除了可以指向常变量外,还可以指向未被声明为...//定义了一个指向常变量的指针变量p p=&c1;//使p指向字符变量c1 *p=’b’;//非法,不能通过p改变变量c1的值; c1=’b’//合法,没有通过p访问c1,c1
  • 在编写testbench时,关于变量的定义常犯的错误就是将一个定义好的全局变量应用到了两个不同的alwaya模块中,如下面exmp1所示,那么由于这两个always块独立并行的工作机制,很可能会导致意想不到的后果。exmp1:实际...
  • 1、static定义的静态变量不属于某个具体类对象,它是属于类的的,只能在类内部声明,在类外定义;即在C++中,static静态成员变量不能在类内部初始化; 2、C++中,const成员变量也不能在类定义处初始化,只能...
  • define宏定义和const常变量区别: 1.define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。 const定义的常量,在程序运行时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,254
精华内容 1,301
关键字:

常变量的定义