C语言的常量和类型

1.字面常量(能够直接写出来的)

(1)整数

C语言中的整数可以用二进制、八进制、十六进制进行表示的.

二进制:用0和1表示(计算机中的原码反码补码都是用二进制来表示的)

八进制:用0-7表示,编程语言中以数字0作为开始来表示八进制

十六进制:用0-9和ABCDEF来表示十六进制,其中ABCDEF分别表示10、11、12、13、14、15

(2)实数

实数只能用十进制表示,其中指数的表示为底数后加上e或E再加指数

(3)字符常量

字符常量在计算机中存储一般以ASCLL码表进行存储的

 字符常量有两中表示方法:单引号表示法和转义字符表示法

单引号表示法:用''来表示,中间加字符,例如:'a','9'.

转义字符表示法:用反斜杠加某个特定字母来表示

也可以用来表示八进制和十六进制,ddd表示1-3个八进制数字,其中d为八进制数字0-7,然后将八进制转化成十进制再对照ASCLL码表,但输入的数字转化成十进制不能超过127不然会溢出

xdd x是十六进制的标志,dd表示1-2个十六进制数字,其中d为十六进制数字0-9和ABCDEF

C语言中字符常被认为是1字节的整数,字符的值就是它的ASCLL码值,可以像整数一样进行运算

(4) 字符串常量

先看一个代码

#include<stdio.h>
int main()
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	printf("%sn", arr1);
	printf("%sn", arr2);
	return 0;
}

运行结果为

 第二个打印的时候会出现烫烫烫,是因为字符串的结束标志是'',而在末尾没加'',在'c'后面会出现随机值,不知道什么时候有'',该打印就不会在字符c后面立即结束

下面这个代码原理也是如此

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	printf("%dn", strlen(arr1));
	printf("%dn", strlen(arr2));
	return 0;
}

运行结果为

 strlen是用来计算字符串的长度的,是C语言中的一个库函数要引用头文件string.h

strlen计算的是之前出现的字符的个数
为什么arr2的长度是15呢?
就是因为在字符'c'后没加'',后面出现的就是随机值.

2.const修饰的常变量

const是常属性的意思,一个变量被const修饰后就具有了某种常属性,但这个变量的本质上仍然是变量,无法在数组中定义,例如:

#include<stdio.h>
int main()
{
    int n;
    int arr[n]={0};//这样的话运行的时候就会报错,因为在数组中定义的大小不能是变量
    return 0;
}

结果是无法运行 

 

3.用#define定义的标识符常量

用#define定义的标识符常量就是一个彻底的常量,例如:

#include<stdio.h>
#define N 10
int main()
{
int a=N;
printf("%d",N);
int arr[N]={0};//可知N能够在数组定义中使用
}

运行结果正是为10 ,这说明了N已变为常量

4.枚举常量

枚举的关键字为enum,其结构有点像关键字struct创建的结构体,枚举常量是一一列举的,例如:

#include<stdio.h>
enum Color
{
     RED,
     GREEN,
     BLUE
};
int main()
{
printf("%d %d %dn",RED,GREEN,BLUE);
return 0;
}

运行结果

 

 可知枚举中的元素从上至下从0开始依次递增.

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>