时间:2022-07-19 10:18:12 | 栏目:C代码 | 点击:次
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语言风格的注释 /*xxxxxx*/ 缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行