- ardim
-
你是指常量表示数组大小,还是初始值?但不管是什么,都原理一样,以数组大小为例,在c++中,有些变量是在编译期间,编译器就给分配空间的,有的是运行时候才分配空间,对于编译期间就分配空间的变量,编译器一定要知道它是多少长度的,才能分配适合那个长度的空间,静态数组,临时变量,全局变量之类都是这样。你放变量在里面,当然编译期间都不知道这个数组的大小,当然不行了。这类变量一般是在栈上分配空间,只不过不同类型变量位于栈的不同段。
有些变量是在运行期间分配空间的,这样的变量里面可以有变量,因为变量的值在运行期间可以确定,系统就知道为它分配多少空间。但一般这类变量是在堆上分配空间。
- 阿啵呲嘚
-
int
const
n=5;
尽管n的值是常量5,不允许通过n改变,但是
,并不等于n的值不能改变,实际上可以通过指针对其值进行修改,比如int
*p=&n;
*p=12;
这样那个就修改了n的值(将&n赋值给p的时候编译器可能会发出警告),所以n是一个变量,是一个特殊的变量,被称为常变量。
因此,n不是一个常量,只是一个不能通过n来修改其值的一个变量。所以不能用它来给定数组的大小。
- bikbok
-
你如果用vc6的话,这样是不行的,因为vc6有自己的一套标准,不遵守c/c++标准
vc2002以后的版本就正常了
vc6这种情况可以用枚举常量代替const常量:
enum
{
n=5};
int
a[n];
C中什么是“常变量”?
常变量简介: 在C语言中常变量就是用const定义的变量,常变量的值是不能被改写的,只能使用不能改写,除非是用友原函数进行调用。其实相当于用#define定义的变量,不过在c++中用const定义。在c中一般用#define来定义。 常变量定义: 第一种, 使用#define 宏定义,比如想定义一个值为10的常量,那么: #define value 10 value就是一个值为10的宏,以后只要遇到value 系统就将value 替换为10,注意宏定义后面不能有分号。 第二种,采用const 关键字 把一个变量声明转换为常量声明。即: const int value = 10; value 是一个只读值,你不能再修改value的值。 第三种方法,采用枚举变量的功能,声明一个枚举变量: enum name { x =1,y=2,z=3}; 其中的x,y,z就是个常量了,当然里面的值等于多少是你自己确定的,如果不显示声明,就是默认从0开始的。2023-06-10 14:12:207
C语言中的“常变量”是什么?
在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量。它在定义时必须对它初始化,此后它的值不能再改变。既然不能改变,所以作为赋值运算的左值。2023-06-10 14:12:381
c语言中常变量是什么意思?
我以为你说的是constant variable.意思是, 此变量只在宣告处给值, 给值後内容不可变.2023-06-10 14:12:512
常变量可不可以被修改?
不能吧!2023-06-10 14:13:017
常变量和符号常量的区别
符号常量:在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量其中#define 也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。例:#include<stdio.h>#define PRICE 30main(){int num,total;num=10;total=num* PRICE;printf(“total=%d”,total);}使用符号常量的好处是:含义清楚;能做到“一改全改”。常变量 就是用const定义的变量,常变量的值是不能被改写的,只能使用不能改写,除非是用友原函数进行调用。其实相当于用#define定义的变量,不过在c++中用const定义。在c中一般用#define.2023-06-10 14:13:403
C中什么是“常变量”?
就是只读不写的变量啊!2023-06-10 14:13:492
C语言中常变量是什么?与变量的区别
就好比常用单词和不常用单词,区别是一个常变一个不常变2023-06-10 14:13:563
C语言里符号常量和常变量有什么区别?
符号常量与常变量的区别:符号常量不占用内存空间,在预编译时就全部由符号常量的值替换了,而常变量占用内存空间,也有数据类型,但是此变量在存在期间是不能重新赋值的。1、常变量a的定义如下:constinta=5;2、符合常量PI的定义如下:#defineb=3.1;2023-06-10 14:14:071
c语言中宏跟常变量的定义有什么区别
C当中是没有常变量的,也就是定义的变量赋值了常数但是仍然可以改变值;C++里边才有常变量,定义同时初始化,以后就不能改变值了。C中的宏定义就是一种替换,代码上的复制替换,可以这样理解,defineA12345就是凡是A出现的地方都用12345替换,当然宏替换就不止数值,还可以到字符串、函数表达式上去。替换的部分是预定义,经过编译后才会替换掉,并且对A是没有分配存储空间的,其实也没必要,都全部替换了。2023-06-10 14:14:161
常变量是什么?
就是常量...例如:pi = 3.1415.....你不可能把pi改了 在去做园面积的计算2023-06-10 14:14:231
直接变量和常变量的区别
符号常量与常变量的区别:符号常量不占用内存空间,在预编译时就全部由符号常量的值替换了,而常变量占用内存空间,也有数据类型,但是此变量在存在期间是不能重新赋值的。1、常变量a的定义如下:const int a = 5;2、符合常量PI的定义如下:#define b=3.1;2023-06-10 14:14:411
常变量能当私有成员吗
属于类的作用域2:调用该方法时,需要依赖一个对象,而且常对象不能调3:可以任意的访问对象的私有成员变量const 常成员方法 => const student *this1:属于类的作用域2:调用依赖对象,普通对象和常对象都可以调用3:可以任意访问对象的私有成员,但是只能读,不能写.static 静态成员方法=>编译器不会添加this形参变量1:属于类的作用域2:用类名作用域来调用方法3:可以任意访问对象的私有成员,仅限于不依赖对象的成员(只能调用其他的static静态成员)2023-06-10 14:14:482
最近在学习C++,请问C++中有叫常变量的,为什么非得用常变量啊,用#define来定义不是一样吗?
#define 没有数据类型而且另一个缺点是编译器和程序员看到的代码不同,这不利于debug我也问过这个问题2023-06-10 14:14:584
什么是常量,什么是变量? 怎样定义常量和常成员函数?
常量即是在内存中定义的不变的恒量,如3,"A"等,变量是可变的量,如,a,b,对a可以赋不同的值,a=2,或a=3等。2023-06-10 14:15:074
n=6t的变量与常变量
(1) 常量: 6 ;变量: n , t.(2) 常量: 0.58 ;变量 y , x.2023-06-10 14:15:141
在C++中,直接常量于常变量有什么区别?
直接常量没有分配空间的而常变量仍属于变量要分配空间,只不过这个变量的值不能改变而已加const限定2023-06-10 14:15:231
C++ 中const 常变量的问题~~
j 是“指向对象和值都不能更改的int指针”,但 i 的值还是能改的……2023-06-10 14:15:424
定义的指针数组初始化后,可以输入修改吗
看你如何定义和初始化。你最好给出例子,否则要无的放矢地开课了。下面先不谈数组,只谈变量:1、指针常量如果在定义指针变量时候,指针变量前用const修饰,被定义的指针变量就变成了一个指针类型的常变量,指针类型的常变量简称为指针常量。声明和初始化:数据类型 * const 指针变量=变量名;修饰符const与指针变量紧邻,说明指针变量不允许修改,既然指针变量的值不能修改,所以一定要在定义的时候给定初值(指向一个确定存在的地方)char * const p="ABCDEF";p=NULL;//错误,指针常量不允许再改变p="1234";//错误p=(char *)q;//错误*p="B"; //正确2、常量指针如果在定义指针变量的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量称为常量指针,声明和初始化:const 数据类型 *指针变量=变量名;或者 数据类型 const * 指针变量=变量名;定义一个常量指针后,指针指向的值就不能被改变,即不能通过指针变量直接更改指针指向的值const char *P="ABCDEF";*P="1";//错误,不可更改指针指向的值p[1]="1";//错误p=NULL;//正确3、常指针常量声明和初始化:const 数据类型 * const 指针变量=变量名;数据类型 const *const 指针变量=变量名;指针不能改变,指针指向的值也不能改变char *q;const char * const p="ABCDEF";//定义了一个常量常指针q=p;//错误,不允许一个常指针赋值给非常指针p=q;//错误,不允许改指针常量的值*p="1";//错误,不允许改指针指向的值,p[1]="1";//错误,p=NULL;//错误,2023-06-10 14:15:511
const int a=10;
不是,这个是,全局变量。你看看书吧。全局变量的值会在函数内部调用时改变。另外你说扩大作用域,也是有点那么个意思..嗯。2023-06-10 14:15:583
常量与变量都是变量,常量是特殊的变量,只不过常量被赋予值后就再也不能改变的量,而普通的变量则能再赋
内使用新定义局部变量,内局部变量外面冲突2023-06-10 14:16:082
关于PI的常变量定义优劣性问题
第一个更精确。2023-06-10 14:16:195
我想问个关于C语言的问题,为什么有了常变量就可以不必多用符号常量,我感觉他俩差不多啊
还有常变量?2023-06-10 14:16:353
C语言中的常量能赋值吗?
C语言中的常量当然不能赋值。C语言中一种常量是直接常量,包括各种类型的,例如整形常量,字符串常量。123就是整型常量,“你好”就是字符串常量。另一种常量符号常量,其实就是一个宏定义。#define constant1 123还有一种是常量型变量,又叫常变量,常变量占用内存空间,只是此变量在存在期间不能重新赋值。定义的时候加上const 修饰即可。2023-06-10 14:16:421
变量常量到底占用内存空间吗,什么样的常量变量占用内存空间????谢谢了谢啦
数据呀,如果出现大量数据被读入内存,然后就占内存呀,如果这些大量数据需要复杂计算(计算算法的缓存机制也会占有大量内存),复杂计算吃掉大量CPU资源的。linux :top2023-06-10 14:16:502
直接变量和常变量的区别
整型是整数的一部分所组成的集合;浮点型是实数中的一部分组成的集合,带小数位。整型变量就是存放整数的变量,在dos下,范围是:-32668~32767;在windows下,范围是-2的32次幂到2的32次幂-1浮点变量:表示以浮点形式表示实数的变量,其中也规定了占用的空间量,字节数;以及表示的范围。2023-06-10 14:17:332
在C语言学习中什么叫做常变量
相对于其它变量它是常量2023-06-10 14:17:453
常变量可不可以被修改?
在命令提示符下直接输入surftab命令,指定一个新的值,然后使用regen命令重新生成一下就可以了。另外还有一个控制显示的圆或弧的精度的命令,在命令提示符下输入viewres,回答y,然后设置值,缺省100,最高20000。图形的精度提高了,图形的再生成速度就会减慢,要注意到这个问题。好长时间没有用了,直接输入surftab1和surftab2就可以了,然后使用regen2023-06-10 14:17:533
c语言中宏跟常变量的定义有什么区别
C当中是没有常变量的,也就抄是定义的变量赋值了常数但是仍然可以改变值;C++里边才有常变量,定义同时初始化,以后就不能改变值了。C中的宏定义就是一种替换,代码上的复制替换,可以这样理解,defineA12345就是凡是A出现的地方都用12345替换,当然宏替换就不止数值,还可以到字符串知、函数表达式上去。替换的部分是预定义,经过编译后才会替换掉,并且对A是没有分配存储道空间的,其实也没必要,都全部替换了。2023-06-10 14:18:021
c语言中宏跟常变量的定义有什么区别
宏用define定义,运算时是原样带入,变量就不多说了……2023-06-10 14:18:126
数学变量和常变量的差别
常变量是在程序中要用到的,但在初始化后,在程序中不会再被改变的变量。设置为常变量是防止该数据被改了。比如定义了const float pi=3。1415926;pi的值肯定是固定的,不想被改变的。所以定义为了常变量。当对pi进行更改时,就会报错。数学变量就是表达式中的变量,数值可以改变2023-06-10 14:18:281
c语言定义双精度浮点型常变量E,值为2.71828?
double E=2.71828;2023-06-10 14:18:342
excel怎么计算有常变量的式子?
A放在A列,B放在B列,...=15*1.21* A1 +3.14*2*0.55*0.888*B1+ 3.14*2*0.55*0.395* C1下拉2023-06-10 14:18:531
在C++中,直接常量于常变量有什么区别?
直接常量没有分配空间的而常变量仍属于变量要分配空间,只不过这个变量的值不能改变而已 加const限定2023-06-10 14:19:061
用Keil对C51进行编程的时候,能够使用long int 来定义常变量吗?
可以为什么不呢?有需要 就可以!2023-06-10 14:19:132
C语言里符号常量有大小限制吗?
有2023-06-10 14:19:234
关于Const和Define的区别
先说说const,const是写给我们看的。比如#Define PI 3.14 ,编译的时候程序已经不存在PI,就是编译的时候已经将所有的PI替换成为3.14.。const的话就是有数据类型,发生错误的概率比较小2023-06-10 14:19:302
c语言char和const char区别
同意楼下的,http://zhidao.baidu.com/question/22854618.html2023-06-10 14:19:475
定义常对象和常成员的关键字是
定义常对象和常成员的关键字是const。const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++等。const是constant的缩写,表达的意思是“恒定不变的”!也就意味着它是定义只读变量的关键字,或者说const是定义常变量的关键字。说const定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。const关键字的技巧1、定义常量:使用const声明一个变量并初始化它,就可以创建一个常量。这样可以确保在程序中使用该变量时,其值不会被修改。例如:const int PI=3.14159。2、函数参数:在函数声明中,将参数声明为const可以防止函数修改该参数的值。这对于指针参数特别有用,因为它可以防止意外修改指针所指向的内存。例如:void myFunction(const int* myArray, const int arraySize)。2023-06-10 14:20:031
常变量为什么可以被改变,
心情不好2023-06-10 14:20:173
c++先定义常变量再定义数组与直接定义数组有什么区别?
const a=100; int arr[a]; 与 int arr[100]; 作为数组 arr 来说 没有区别。因为 a 是常量,只能做 右值,不能做左值。与 100 是常量 一样。 只不过 分配的 内存地址可能 不同。由于多声明了一个 const int a=100; 这个 a 可以派别的用途,例如 放在表达式里,例如用作函数实际参数,或用于 声明 int brr[a],crr[a],drr[a];2023-06-10 14:20:451
黄金分割比可使用以下宏定义表示:#define PHI 0.618如果采用常变量定义,应写为?
把这个宏 定义 为const全局量: const double phi=0.618; //定义为const, 这样就 “不为左值”,数值不变了。全局量则全局可以使用。不做宏了,改用小写phi#include<stdio.h>const double phi=0.618; int main(){printf("phi=%g ",phi);return 0;}2023-06-10 14:20:521
积分被积变量是dp怎么理解
二重积分中的被积函数应该是被积区域中每一个点的函数,而如果只与某一个变量有关,说明另一个变量为常量,相当于半常函数,当做一般的二元函数求积分即可。正所谓常函数,它也是变量的函数,往往求解更加简单。从图形来看,常变量说明沿着该方向变化是水平平行的2023-06-10 14:20:581
如果先定义一个常变量,且用一个常指针来指向常变量,那么可以通过常指针来改变常变
这是const的一种特性 ,把一个const变量的地址 给其他变量 就可以修改这个变量的值2023-06-10 14:21:083
C 表达式必须含有常量值?
返过来写就可以:int const MaxSize=102023-06-10 14:21:165
在定义数组时,数组大小必须是常量,不能使变量或变量表达式
数组用常数定义大小就行2023-06-10 14:21:363
C++中常量赋值是如何规定的
常量区分为两种,一种为真正的常量,一种为常变量。1 狭义的常量,本身就是一个值,比如整型常量123, 字符型常量"A",字符串常量"asdf"等。这类常量无法被赋值。2 常变量。当一个变量定义时,拥有const修饰,这时该变量为常变量。常变量作为一个独立变量存在时,无法被赋值。只能在初始化时赋予初始值。任何对这类常变量的赋值均会引起编译错误,即使通过其它手段绕过了编译报错,在运行时一样会产生错误。如果常变量是作为函数参数形式出现的,同时传入的实参并非常变量,那么在函数内部通过强制转换的方式,取消其常量属性,是可以进行赋值的。不过一般不推荐这样做,因为作为函数的实现者,无法预知传入的实参是否为常变量或简单的常量。这时在函数内部进行强制性的赋值是有危险的。2023-06-10 14:21:493
C语言中怎么理解字面常量和直接常量
从字面形式上即可识别的常量称为字面常量或直接常量,字面常量是没有名字的不变量2023-06-10 14:22:102
C语言编程技巧 关于const和#define的区别心得
1)#define是C语言中的预处理指令,也就是,#define定义的“常数”是编译器进行编译前,由预处理器将#define定义的符号替换掉。这个动作与我们在编辑文档时经常使用文本“替换”操作极为相似;正是这个原因,导致#define定义的常数不是“强类型”(严格地讲,#define定义的只是文本)3)C#中,利用const修饰符定义关键字是强类型的。所谓“强类型”是指:定义常量时必须指定常量的类型2023-06-10 14:22:172
请人来回答下面的C++问题啊,本人刚学,不太懂啊?
1.错:作用域相同,寿命不同2.错:定义在函数体外的变量是全局变量,属静态存储类型3.错:外部静态变量只能用于本模块,而外部非静态变量可被所有文件引用4.对5.错:赋值运算符没有副作用6.错:类型高低指自动转换的提升规则,如double的类型高于int,因为int可以自动转换为double而不出现误差7.对8.错2023-06-10 14:22:422
C语言怎样字符串常量
C++语言中,常量分为两种:文字常量(literal constant)和常变量(constant variable)。文字常量又称为“符号常量”,经编译之后写在代码区,是不可寻址的。而常变量同其它变量一样被分配空间,是可以寻址的。例如,在Visual C++中,语句int i=3;所对应的汇编代码为mov DWORD PTR _i$[ebp],3,其中_i$表示在一帧数据中,变量i距帧指针ebp的偏移量。文字常量3被直接写在代码区,在数据区无法找到它。利用预编译指令#define定义的常量也属于文字常量。 常变量由普通变量在前面加const关键字而定义。常变量的值在初始化后不能改变,由编译器所做的语法检查进行保障。 由于运行时常变量并不是放在只读内存中,而是和一般变量一样放在数据区,所以在运行时如果能获得常变量的地址,一样可以对它们进行修改 。所以:string a = "abc";"abc"是const string b = "bcd";b是,"bcd"是.2023-06-10 14:23:164