四种常量:
1.字面常量
如数字100,‘a’
2.const修饰的常变量
const int n = 10 //常变量而非常量 不能用 int a【n】={1,2,3}定义数组
3.define定义的标识符常量
#define NUM 100 //NUM是define定义的常量
4.枚举常量:
生活中有些取值可以一一列举的如:
性别:男,女,保密
星期:1,2,3,4,5,6,7
//创建一种枚举类型
#include <stdio.h>
enum Sex
{
//枚举类型Sex的三个可能取值 -枚举常量
MALE, //0
FEMALE, //1
SECRET //2
};
int main()
{
enum Sex sex = FEMALE;
//MALE = 2; //err
printf("%d\n", MALE); //0
printf("%d\n", FEMALE); //1
printf("%d\n", SECRET); //2
return 0;
}
字符串:
由双引号括起来的一串字符就是字符串 如:"abc"、"a"、"" //空字符串
注:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
#include <stdio.h>
//突出'\0'的重要性
int main()
{
char arr1[] = "abcdef";
char arr2[] = {'a', 'b', 'c','d','e','f'};
char arr3[] = {'a', 'b', 'c','d','e','f','\0'};
//%s 是打印字符串
printf("%s\n", arr1); //abcdef
printf("%s\n", arr2); //abcdef烫abcdef
printf("%s\n", arr3); //abcdef
return 0;
}
#include <stdio.h>
#include <string.h>
//说明'\0'不算作字符串内容
int main()
{
char arr1[] = "abcdef";
printf("%d\n", strlen(arr1)); //6
//strlen - string length - 字符串长度 需要头文件<string.h>
char arr2[] = {'b','i','t'} ;
printf("%d\n", strlen(arr2)); //10 缺少\0输出值是随机值
return 0;
}
转义字符
#include <stdio.h>
int main()
{
//问题1:在屏幕上打印一个单引号',怎么做?
//问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
//问题3:在屏幕上打印 c:\code\test.c\n,怎么做?
printf("%c\n", '\''); //'
printf("%s\n", "\""); //"
printf("c:\\code\\test.c\n"); //c:\code\test.c\n
return 0;
}
特殊的转义字符:
\ddd:ddd表示1~3个八进制的数字。 如: \130 X
注:\ddd 最多只支持三位数字,并且三位数字也不是任意的,一旦大于等于八进制数 '/400 '(十进制256=8进制400)就超过了ascall码的范围,编译器就会报错。另外大于三位,或者遇到非八进制数字时则转换结束,直接取末尾数字。
面试题:需注意\后的三个数字超出400和三个数字中有超过7的数字的情况
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n", strlen("abcdef"));
// \62被解析成一个转义字符
printf("%d\n", strlen("c:\test\628\test.c")); //14
return 0;
}
\xdd:dd表示2个十六进制数字。 如: \x5F //
注释
注释有两种风格:
C语言风格的注释 缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!