初始C语言 (2)
- 常量
--生活中不变的量
C语言中的常量分为以下几种:
- 字面常量
- const修饰的常变量
- #define定义的标识符常量
- 枚举常量
1 #include <stdio.h> 2 int main() 3 { 4 //字面常量 5 3; 6 100; 7 3.14; 8 9 //const修饰的常变量 10 //const -常属性 11 //num是const修饰的常变量 12 const int num = 4; 13 printf("%d\n",num); 14 15 const int n = 10; //n是变量,但又有常属性,所以说n是一种常变量 16 //const不能表示常量,只能用来表达一个不能变的量 17 int arr[n] = 10; 18 }
1 //#define定义的标识符常量 2 #include <stdio.h> 3 #define MAX 10 4 5 int main() 6 { 7 int arr[MAX] = {0}; 8 printf("%d\n",MAX); 9 return 0; 10 }
1 //枚举常量 -一一列举 2 //枚举关键字 -enum 3 4 #include <stdio.h> 5 6 enum Sex 7 { 8 MALE, 9 FEMALE, 10 SECRET 11 }; 12 //MALE,FEMALE,SECRET -枚举常量 13 14 int main() 15 { 16 enum Sex s = MALE; 17 printf("%d\n",MALE); //0 18 printf("%d\n",FEMALE); //1 19 printf("%d\n",SECRET); //2 20 return 0; 21 }
1 #include <stdio.h> 2 3 enum Color 4 { 5 RED, 6 BLUE, 7 YELLOW 8 }; 9 10 int main() 11 { 12 enum Color color =BLUE; 13 color = YELLOW; 14 15 return 0; 16 17 }
- 字符串
-由双引号引起来的一串字符称为字符串
字符串的结束标志是一个'\0'的转义字符,在计算字符串长度的时候‘\0’是结束标志,不算作字符串内容。
#include <stdio.h> int main() { //数据在计算机上存储的时候,存储的是二进制 //a -97 ASCII码值 //A - 65 ASCII 编码 “abcdef”; "hello bit"; ""; //空字符串 char arr1[] = "abc";//数组 //“abc” --‘a’ 'b' 'c' '\0' --字符串的结束标志 char arr2[] = {'a','b','c'}; printf("%s\n",arr1); //%s -打印字符串 printf("%s\n",arr2); return 0; }
#include <stdio.h> int main() { char arr1[] = "abc"; char arr2[] = {'a','b','c'}; printf("%d\n",strlen(arr1)); //strlen -string length --计算字符串长度 printf("%d\n",strlen(arr2)); return 0; }
- 转义字符
--转变原来的意思
- \? --在书写连续多个问号时使用,防止他们被解析成三字母词 ??+ 一个其他字符,比如说:) -->三字母词
- \' --用于表示字符常量'
- \" --用于表示一个字符串内部的双引号
- \\ --用于表示一个反斜杠,防止它被解释为一个转义序列符
- \a --警告字符,蜂鸣
- \b -退格符
- \f --进纸符
- \n --换行
- \r --回车
- \t --水平制表符
- \v --垂直制表符
- \ddd --ddd表示1~3个八进制的数字。如:\130X
- \xdd --dd表示2个十六进制数字。如:\x30 0
// \? #include <stdio.h> int main() { printf(“(are you ok\?\?)\n”); return 0; }
// \\ \t #include <stdio.h> int main() { printf(“c:\\test\\32\\test.c”); //\t -水平制表符 return 0; }
// \' #include <stdio.h> int main() { printf(“%c\n”,'\''); return 0; }
// \" #include <stdio.h> int main() { printf(“%s\n”,"\""); return 0; }
// \ddd #include <stdio.h> #include <string.h> int main() { printf(“(%d\n”,strlen("c:\test\32\test.c")); //\32 --32是2个八进制数字 //32作为八进制代表的那个十进制数字,作为ASCII码值,对应的字符 //八进制32 -->十进制26 ——> 作为ASCII码值代表的字符 return 0; }
// \xdd #include <stdio.h> int main() { printf(“(%c\n”,'\x61'); return 0; }
- ASCII码
48 -0
49 -1
50 -2
51 -3
52 -4
53 -5
54 -6
55 -7
56 -8
57 -9
65 -A 97 -a
66 -B 98 -b
67 -C 99 -c
68 -D 100 -d
- 注释
注释有两种风格:
- C语言风格的注释 /* xxxxx */ ,缺陷:不能嵌套注释
- c++风格的注释 //xxxxxx 可以注释一行也可以注释多行
- 选择语句
if语句
#include <stdio.h> int main() { int input = 0; printf("加入比特\n"); printf("你要好好学习吗?(1/0):>"); scanf("%d", &input); if (input == 1) printf("好offer\n"); else printf("卖红薯\n"); return 0; }
- 循环语句(while/for/do ...while)
while循环
#include <stdio.h> int main() { int line = 0; printf("加入比特\n"); while (line < 20000) { printf("敲一行代码:%d\n",line); line++; } if(line>=20000) printf("好offer\n"); return 0; }
- 函数
- 自定义函数
- 库函数
#include<stdio.h> int Add(int x, int y) { int z = x + y; return z; } int main() { int num1 = 10; int num2 = 20; int sum = 0; int a = 100; int b = 200; //sum = num1 + num2; sum = Add(num1, num2); //sum = a + b; sum = Add(a, b); printf("sum = %d\n", sum); return 0; }
- 数组
#include <stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //定义一个存放10个整型数字的数组 int i = 0; while (i < 10) { printf("%d ", arr[i]); i++; } printf("%d\n", arr[4]); //用下标的方式访问元素 return 0; }
arr
1 2 3 4 5 6 7 8 9
下标0 1 2 3 4 5 6 7 8
下标默认是从0开始的
- 操作符
- 算术操作符
#include<stdio.h> int main() { int a = 5 % 2; //取模 printf("%d\n", a); return 0; }
- 移位操作符 >> <<
int main() { //移位(二进制位)操作符 //<<左移 //>>右移 int a = 1; //整型1占四个字节 -32个bit位 //00000000000000000000000000000001 int b = a << 2; //00000000000000000000000000000100 //左移 左边丢弃,右边补零 //右移 右边丢弃,左边补零 printf("%d\n", b); printf("%d\n", a); return 0; }
- 位操作符 & | ^
int main() { //(二进制位)位操作符 //& 按位与 //| 按位或 //^ 按位异或 int a = 3; int b = 5; int c = a & b; //0011 //0101 //a&b = 0001 int c = a | b; //a |b = 0111; int c = a ^ b; //不是次方,是异或 //异或的计算规律:对应的二进制位相同则为0,相异则为1 a ^ b = 0110 printf("%d\n", c); return 0; }
- 复合运算符 (=,+=,-=,*=,/=,&=,^=,|=,>>=,<<=)
#include <stdio.h> int main() { int a = 10; a = 20; //= 赋值 ==判断相等 a = a + 10;//a += 10; a = a - 20;//a -= 20; a = a & 2;//a &= 2; return 0; }
- 单目操作符 !逻辑反操作符 -负值 +正值
//双目操作符
//三木操作符
#include <stdio.h> int main() { int a = 10; int b = 20; a + b;//+ 双目操作符 有两个操作数 //! 逻辑反操作符 C语言中表示真假 0 -假 非0 -真 int a = 0; printf("%d\n", a); printf("%d\n", !a); //- 负值 int a = -2; //- 单目操作符 只有一个操作数 int b = -a; int c = +3; //+正号都会省略 //sizeof(操作数的类型长度(以字节为单位)) int a = 10; //sizeof 计算的是变量/类型所占空间的大小,单位是字节 printf("%d\n", sizeof(a)); printf("%d\n", sizeof(int)); printf("%d\n", sizeof a);*/ int arr[10] = { 0 }; //10个整型元素的数组 int sz = 0; //10*sizeof(int) = 40 printf("%d\n", sizeof(arr)); //计算数组的元素个数 //个数 = 数组总大小/每个元素的大小 sz = sizeof(arr) / sizeof(arr[0]); printf("sz = %d\n", sz); return 0; }

浙公网安备 33010602011771号