您的位置 首页 知识

c语言constant用法(变量前加const)

constant函数用法?

大多数情况直接用常量名,但是如果这样定义define(‘v-v’,’可爱’),这时用常量名就不行了,就要使用函数,constant()函数和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便。

const什么变量?

我们经常将 const 变量称为常量(Constant)。创建常量的格式通常为:
const type name = value;

const 和 type 都是用来修饰变量的,它们的位置可以互换,也就是将 type 放在 const 前面:
type const name = value;

但我们通常采用第一种方式,不采用第二种方式。另外建议将常量名的首字母大写,以提醒程序员这是个常量。

由于常量一旦被创建后其值就不能再改变,所以常量必须在定义的同时赋值(初始化),后面的任何赋值行为都将引发错误。一如既往,初始化常量可以使用任意形式的表达式。

C语言 const char * arr[5]什么意思?

  • 这是数组还是指针
  • arr是指针数组

C语言中swich函数的一些问题,程序代码如下,请问为什么会提示case expression not constantPS:本人新手

  • #includestdio.hmain(){ int score; printf("请输入成绩"); scanf("%c", &score); switch(score) { case score100: printf(" You should work hardn"); break; case score=100: printf("You did vert welln"); break; defualt: printf("用户未响应,操作取消n"); }}
  • switch(score)case 80: 分数为80时采取操作case 90: 分数为80时采取操作case 100: 分数为80时采取操作….以此类推。总的说,case x 中的x是一个常量,当其值与score相等时才执行操作,而不能是个条件。你这种情况还是用判断吧:if() ;else if() ;else ;这样比较好。

C语言函数中的参数有const的问题,具体代码如下

  • 照理说有const的参数怎么还能执行*strDest++=*strSrc++;呢 请大师解答char* Copy(char* strDest,const char* strSrc){ch孩法粉盒莠谷疯贪弗楷ar* strDestCopy = strDest;while (*strSrc!=0){*strDest++=*strSrc++;}return strDestCopy;}
  • 我不是大师,我可以答么?

在C语言中,register,const,static,extern分别都是什么意思,有什么用

  • register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。const限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。

C语言中const有什么用途

  • 用来定义常量

请问c 语言中的 const 是什么意思?

  • const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的(1)可以定义const常量,具有不可变性。 例如: const int Max=100; int Array[Max]; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。void f(const int i) { ………} 编译器就会知道i是一个常量,不允许修改; (3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 void f(const int i) { i=10;error! } (5) 为函数重载提供了一个参考。 class A { …… void f(int i) {……} 一个函数 void f(int i) const {……} 上一个函数的重载 …… }; (6) 可以节省空间,避免不必要的内存分配。 肠沪斑疚职狡办挟暴锚#define PI 3.14159 常量宏 const doulbe Pi=3.14159; 此时并未将Pi放入ROM中 …… const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。

c语言中的const疑问

  • 这样能运行#includestdio.h#define O 1.8#define P 32.0#define Q 273.16void TE(double n);int main(void){ double fa,DA; printf("please enter the temperature:"); while(scanf("%lf",&fa)==1) { DA=fa; TE(DA); printf("please enter the temperature or q to stop:"); } return 0;} void TE(double n){ double ce,ke; ce=O*n+P; ke=ce+Q; printf("Fahrenheit is %5.2f,celsius is %5.2f,kelvin is %5.2fn",n,ce,ke);} 但把#define O 1.8#define P 32.0#define Q 273.16都改为const double O1.8;const double P 32.0;const double Q273.16;就会显示没有声明的标识符,且运行不了程序,还有这三个放在程序任何一个位置都这样显示,求解答为什么????
  • 宏的定义方式与const关键字使用方式不同,使用const和声明变量一样,得使用=来进行赋值的。即: const double O = 1.8; const double P = 32.0; const double Q = 273.16

用 C++ 语言的编程风格 编程实现一个输入半径,输出其面积和周长的程序 提示: (1) 定义符号常量: const

  • 求答案!!!问题补充: 用 C++ 语言的编程风格 编程实现一个输入半径,输出其面积和周长的程序提示: (1) 定义符号常量: const double PI=3.14159;(2) 程序中的输出语句为: cout"s="s",c="cendl;(3) 半径从键盘输入,程序中无输入提示语句
  • 1 用指针void Get( double * C, double * S, const double r){ * C = 2 * PI * r; * S = PI * r *r ;}2 用引用void Get( double &C, double & S, const double r){ C = 2 * PI * r; S = PI * r *r ;}

C语言错误error C2051: case expression not constant,求解!!

  • #include stdio.hmain (){char c;int a,b,d,e,i;for(i=1;i=6;i++){scanf("%c %d",c,a);switch (c){case (c==A):b=b+a;break;case (c==B):d=d+a;break;case (c==C):e=e+a;break;default:break;}}printf("A公司的物流总价是%d元。nB公司的物流总价是%d元。nC公司的物流总价是%d元。n",b,d,e);return 0;}
  • #include stdio.hmain (){char c;int a,b,d,e,i;for(i=1;i=6;i++){scanf("%c %d",&c,&a);加上取地址附switch (c){case A_b=b+a;break;直接这样就可以来了case B_d=d+a;break;case C_e=e+a;break;default:printf("没有找到")break也不需要}}printf("A公司的物流总价是%d元。nB公司的物流总价是%d元。nC公司的物流总价是%d元。n",b,d,e);return 0;}

c语言 问题error C2059: syntax error : constant

  • 开头定义 N 2,M 1的时候是正常的,想改两个数字就不对了。。。#define N 10#define M 5出来:c:program files (x86)microsoft visual studiovc98includewinnt.h(5441) : error C2059: syntax error : constantc:program files (x86)microsoft visual studiovc98includewinnt.h(5441) : error C2238: unexpected token(s) preceding ;定位后出来的东西看不懂。。。T.T在一个WINNT.H里:typedef struct _IMAGE_SYMBOL { union { BYTE ShortName[8]; struct { DWORD Short; if 0, use LongName DWORD Long; offset into string table } Name; PBYTE LongName[2]; } N; (定位在这里。。。。这是什么啊。。。T.T) DWORD Value; SHORT SectionNumber; WORD Type; BYTE StorageClass; BYTE NumberOfAuxSymbols;} IMAGE_SYMBOL;typedef IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL;
  • N一斤给宏定义为10 是个数字常量,不能讲别名起为常量