首页 > 编程语言 >C语言编程—常量

C语言编程—常量

时间:2023-05-18 22:31:44浏览次数:46  
标签:10 常量 area int 编程 整数 C语言 define

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量

常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。

常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

常量可以直接在代码中使用,也可以通过定义常量来使用。

整数常量

整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。

整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。

下面列举几个整数常量的实例:

212         /* 合法的 */
215u        /* 合法的 */
0xFeeL      /* 合法的 */
078         /* 非法的:8 不是八进制的数字 */
032UU       /* 非法的:不能重复后缀 */

以下是各种类型的整数常量的实例:

85         /* 十进制 */
0213       /* 八进制 */
0x4b       /* 十六进制 */
30         /* 整数 */
30u        /* 无符号整数 */
30l        /* 长整数 */
30ul       /* 无符号长整数 */

整数常量可以带有一个后缀表示数据类型,例如:

int myInt = 10;
long myLong = 100000L;
unsigned int myUnsignedInt = 10U;

浮点常量

浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。

当使用小数形式表示时,必须包含整数部分、小数部分,或同时包含两者。当使用指数形式表示时, 必须包含小数点、指数,或同时包含两者。带符号的指数是用 e 或 E 引入的。

下面列举几个浮点常量的实例:

3.14159       /* 合法的 */
314159E-5L    /* 合法的 */
510E          /* 非法的:不完整的指数 */
210f          /* 非法的:没有小数或指数 */
.e55          /* 非法的:缺少整数或分数 */

浮点数常量可以带有一个后缀表示数据类型,例如:

float myFloat = 3.14f;
double myDouble = 3.14159;

字符常量

字符常量是括在单引号中,例如,'x' 可以存储在 char 类型的简单变量中。

字符常量可以是一个普通的字符(例如 'x')、一个转义序列(例如 '\t'),或一个通用的字符(例如 '\u02C0')。

在 C 中,有一些特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符(\t)等。下表列出了一些这样的转义序列码:

C语言编程—常量_后缀

下面的实例显示了一些转义序列字符:

#include <stdio.h>
 
int main()
{
   printf("Hello\tWorld\n\n");
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

Hello   World

字符常量的 ASCII 值可以通过强制类型转换转换为整数值。

char myChar = 'a';
int myAsciiValue = (int) myChar; // 将 myChar 转换为 ASCII 值 97

字符串常量

字符串字面值或常量是括在双引号 " " 中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。

您可以使用空格做分隔符,把一个很长的字符串常量进行分行。

下面的实例显示了一些字符串常量。下面这三种形式所显示的字符串是相同的。

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

字符串常量在内存中以 null 终止符 \0 结尾。例如:

char myString[] = "Hello, world!"; //系统对字符串常量自动加一个 '\0'

定义常量

在 C 中,有两种简单的定义常量的方式:

  1. 使用 #define 预处理器。
  2. 使用 const 关键字。

#define 预处理器

下面是使用 #define 预处理器定义常量的形式:

#define identifier value

具体请看下面的实例:

#include <stdio.h>
 
#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'
 
int main()
{
 
   int area;  
  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

value of area : 50

const 关键字

您可以使用 const 前缀声明指定类型的常量,如下所示:

const type variable = value;

C语言编程—常量_#define_02

const 声明常量要在一个语句内完成:

C语言编程—常量_字符常量_03

具体请看下面的实例:

#include <stdio.h>
 
int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

value of area : 50

请注意,把常量定义为大写字母形式,是一个很好的编程习惯。

define 注意“边缘效应”,例:#define N 2+3, N 的值是 5。

double a;
a = (float)N/(float)2;

在编译时我们预想 a=2.5,实际打印结果是 3.5 原因是在预处理阶段,编译器将 a=N/2 处理成 a=2+3/2,这就是 define 宏的边缘效应,所以我们应该写成 #define N (2+3)。

#include <stdio.h>

#define N 2+3
//正确写法 #define N (2+3)

int main(){   
    double a ;
    a = (float)N/(float)2;
    printf("a 的值为 : %.2f", a);   
  
    return 0;
}
以下是一个求矩形面积的例子:

#include <stdio.h>

#define LENGTH 10+10
//正确写法 #define LENGTH (10+10)
#define WIDTH  5
#define NEWLINE '\n'
int main(){   
    int area;   
    area = LENGTH * WIDTH;   
    printf("value of area : %d", area);   
    printf("%c", NEWLINE);   
    return 0;
}

以上实例输出结果为:

value of area : 60

所以如果我们需要得到正确结果应该将 #define LENGTH 10+10 修改为 #define LENGTH (10+10)。

标签:10,常量,area,int,编程,整数,C语言,define
From: https://blog.51cto.com/u_15641375/6307466

相关文章

  • 实验四 函数与异常处理编程
    print(sum)sum=42print(sum)definc(n):sum=n+1print(sum)returnsumsum=inc(7)+inc(7)print(sum)deffunc1(a,b,c,d,e,f):return[a,b,c,d,e,f]deffunc2(a,b,c,*,d,e,f):return[a,b,c,d,e,f]deffunc3(a,b,c,/,d,e,f):re......
  • 从C到C++:学习C++的高级语法、STL和面向对象编程
    好的,那我为您写一篇有关C++编程的文章,详情如下。标题:从C到C++:学习C++的高级语法、STL和面向对象编程开头:C++语言是对C语言的扩展,是一种面向对象的程序设计语言。它具有丰富的数据类型、函数模板、类模板、标准模板库等高级特性。掌握高级语法、STL和面向对象编程,可以使程序员更加高......
  • 面向对象的编程(OOP)知识点总结
    软件构造期末考试将近,在此我将从OOP这一章节开始复习,记录下该章节中的重点内容。知识点概要:OOP基本概念:对象、类、属性、方法、接口和枚举OOP的独特特征:——封装与信息隐藏——继承与重写——多态、子类型、重载——静态与动态分派Java中一......
  • C++趣味编程
    分糖果1#include<iostream>2usingnamespacestd;3intmain()4{5inti,count=0;6inta[10]={10,2,8,22,16,4,10,6,14,20};7intb[10]={10,2,8,22,16,4,10,6,14,20};8do{9a[0]=b[0]/2+b[9]/2;10for(intj=1......
  • 实验4 函数与异常处理编程
    实验任务1实验源码:1print(sum)2sum=423print(sum)45definc(n):6sum=n+17print(sum)8returnsum910sum=inc(7)+inc(7)11print(sum)运行测试截图:答:不是。line1:内置函数line3:变量名line7:局部变量line11:全局变量  ......
  • 打卡 c语言趣味编程 求最小公倍数
    问题描述:求任意两个正整数的最小公倍数(LCM)。思路:输入两个正整数,假设为num1和num2。定义一个变量lcm并初始化为较大的那个数(即lcm=max(num1,num2))。进入一个循环,循环条件为lcm不能同时被num1和num2整除。在每次循环中,将lcm增加1。循环结束后,lcm的值就是最小......
  • [每天例题]蓝桥杯 C语言 次数差
    次数差题目  思路分析1.通过字符型数组接收字符串,通过整形数组确定字母出现的次数2.通过for—if寻找出现次数最多与最少的字母,注意,这里有个坑,出现次数最少的字母至少出现一次代码#include<stdio.h>intmain(){ chars[1000]; intnum[26]={0}; intmax=-1,min=10......
  • 总结:C语言条件编译
    条件编译指令选择哪些代码被编译,哪些代码不被编译。可以根据表达式的值或某个特定宏是否被定义来确定编译条件。#空指令#include包含一个源代码文件#define定义宏#undef取消已定义的宏#error停止编译并显示错误信息#if,如果给定条件为真,则编......
  • shell编程第二天(变量)
    shell第二天变量变量是用一个固定的字符串去表示一个不固定的内容,以便于修改。自定义变量定义变量用户自定义变量是最常用的变量类型,其特点是变量名和变量值都是由用户去定义的。应该怎么定义变量呢?很简单,只需要执行Variablename=Variablevalue即可比如:定义变量namename=666输出变......
  • shell编程第四天(判断)
    文章目录shell编程第四天(判断)shell条件测试数值比较文件测试字符串比较and和or流程控制shell编程第四天(判断)无论是什么编程语言都离不开条件判断,shell编程也是一样的,也就是流程控制。shell条件测试数值比较格式:[数值1操作符数值2],也就是大于,小于,大于等于,小于等于数学中通......