前言:什么是C语言
1.他是人与计算机交流的语言
2.C语言是一种常见的计算机语言,广泛应用于底层开发
一、常量
- 字面常量
- const修饰的常变量
- #define定义的标识常量
- 枚举常量
(一)、字面常量
整型常量:30
浮点型常量:3.14
字符常量:’a‘
字符串常量:“abcdef”
(二)、const修饰的常变量
const int num = 10;
printf("%d\n", num);
num = 20;//错误,num被const限定,无法修改
const修饰的变量本质上还是一个变量,只是被修饰值无法修改,请看下面的例子:
const int n = 10;//这里的n本质上是一个变量,所以在定义数组时不能使用,所以n叫常变量
//const只是让n不可以改变,n并没有变成常量
int arr[n] = { 0 };//err
arr数组中[]操作符的一个操作数n只能为常量,因为n本质上还是一个变量,因此会报错。
(三)、#define定义的标识常量
#include<stdio.h>
#define M 20
int main()
{
int a = M;
int arr[M] = { 0 };
return 0;
}
在上面这个程序中,编译无错误,说明M是常量
(四)、枚举常量
enum Sex
{
MALE,
FAMALE,
};
int main()
{
//int a = M;
//int arr[M] = { 0 };
enum Sex s = MALE;
return 0;
}
二、字符串+转义字符
(一)、字符串
C语言里有整型int,字符型char,但却无字符串类型,在C语言中
字符串类型表示为 “hello world\n"
这种由双引号引起来的就叫字符串。
注:
字符串的结束标志是一个\0的转义字符,
那么
char arr1[]= "abc"与char arr2[]={ 'a','b',’c‘ }有什么区别呢?
”abc“是字符串类型,其中还隐藏了’\0‘,而{’a‘,’b‘,’c‘}只是abc三个字符。
请看下面代码示例:
int main()
{
char arr2[] = { 'a','b','c' };
printf("%s\n", arr2);
system("pause");
return 0;
}
那么,打印数组内容后,为什么会出现烫烫……呢?
这是因为{ 'a','b','c' }中没有’\0‘这样的转义字符,请看下图
没有\0这样的结束标志,就会一直向后读取,知道遇到下一个‘\0’才会结束。