在上篇文章中我们说到了变量,在这篇文章中我们将从常量讲起:
1.常量
c语言的常量有以下几种:
- 字面常量
30;字面常量即直接写出来的常量
- const修饰的常变量
{
const int n = 10;
return 0;
}
值得注意的是,const修饰的本质是变量,但他不能被修改,具有常量属性,所以由
const定义的常量不能用于数组的定义中
- 由#define定义的标识符常量
int main()
{
int arr[MAX] = {};
}
由define定义的常量中 MAX称之为标识,无类型(全局变量有类型)
- 枚举常量
enum Sex
{
MALE,
FEMALE,
SECRET
};
int main()
{
enum Sex a = MALE;
}
由enum定义的常量称为枚举常量,例如上面的MALE,FEMALE,SECRET为enum定义的常量未来可能的取值,但其不能更改
2.字符串+转义字符
2.1 字符串
在c语言中没有字符串类型,我们将由双引号引起来的一串字符称为字符串正面值,或者简称字符串
"hello "
注:字符串结束的标志是\0的转义字符(通常在程序执行的过程中会自行在字符串结束位置补上/0).在计算字符串长度的时候\0是结束的标志,不算作字符串的内容
int main()
{
char arr1[] = "her";
char arr2[] = {'h','e','r'};
char arr3[] = {'h','e','r','\0'};
printf("%s\n",arr1);
printf("%s\n",arr2);
printf("%s\n",arr3);
return 0;
}
如果在字符串中不加\0结束的标志,如arr2[]所示,就会继续随机寻找字符不会结束,直到找到\0为止
int main()
{
char arr1[] = "her";
char arr2[] = {'h','e','r'};
char arr3[] = {'h','e','r','\0'};
printf("%s\n",arr1);
printf("%s\n",arr2);
printf("%s\n",arr3);
printf("%d\n",strlen(arr1));//strlen()为求字符串长度的库函数,应包含头文件string.h
printf("%d\n",strlen(arr2));//strlen(arr2)所得到的值是一个随机值,因为没有结束的标志
printf("%d\n",strlen(arr3));
return 0;
}
2.2 转义字符
常见的转义字符有:
\? | 书写多个问号时使用,防治被解析成三字母词 |
\' | 表示字符常量' |
\" | 用于表示字符串内部的一个双引号 |
\\ | 防止他被解释为一个转义序列符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\ddd | ddd表示1~3个八进制数字. 如\130 X |
\xdd | dd表示2个十六进制数字. 如\x30 0 |
\130为把八进制的130转化为十进制的88,在ASCLL表中对应的为字符X
\x30 同理
int main()
{
printf("%d\n",strlen("abcdef"));6 \0不算在内
printf("%d\n",strlen("c:\test\628\test.c"));14 因为\t \62 被转义了
return 0;
}
输出类型的表示:
%d | 整型 |
%c | 字符型 |
%s | 字符串 |
%f | float型 |
%if | double型 |
%zu | sizeof返回值 |
3.选择语句
c语言中的选择语句有:if...else...和switch...case...语句
int main()
{
int stu = 0;
printf("是否选择香香鸡(yes = 1 or no = 2)\n");
scanf("%d", &stu);
if (stu == 1)
{
printf("正确的选择!");
}
else
{
printf("why?!!!");
}
return 0;
}
4.循环语句
c语言中的循环语句有:
- while
- for
- do...while
int main()
{
printf("表白\n");
int i = 0;
while(i<=99)
{
i++;
printf("我爱你!\n");
}
if(i>=99)
printf("在一起!\n");
return 0;
}
5.函数
函数的特点就是简化代码,重复利用
我们以最简单的加法为例:
int Add(int x,int y)
{
int z = x+y;
return z;
}
我们可以通过上述代码在主函数中的调用,重复利用,而不是重新写一个加法算术表达式
6.数组
数组:一组相同类型元素的集合
数组的定义:
int arr[10] = {1,2,3,4,5,6,7,8,9,0};
下标:数组的下标从0开始
arr[10] | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |