1. ​常量​
  2. ​字符串​
  3. ​转义字符​
  4. ​注释​
  5. ​选择语句​
  6. ​循环语句​
  7. ​函数​
  8. ​数组​
  9. ​操作符​

1.常量

字面常量

const修饰的常变量

#define定义的标识符常量

枚举常量

#include<stdio.h>
//枚举常量-enum
//颜色:红、黄、蓝
enum Color
{
RED,
YELLOW,
BLUE
//枚举常量不能改
};
int main()
{
enum Color color = BLUE;
color = YELLOW;
return 0;
}
//#include<stdio.h>
////枚举常量-enum
////枚举-一一列举
////性别:男,女,保密
//enum Sex
//{
// MALE,
// FEMALE,
// SECRET
// //枚举常量
//};
//int main()
//{
// /*enum Sex s-MALE;*/
// printf("%d\n",MALE);//0
// printf("%d\n",FEMALE);//1
// printf("%d\n",SECRET);//2
//
// return 0;
//}

//#include<stdio.h>
////#define 定义的标识符常量
//#define MAX 10
//int main()
//{
// int arr[MAX];
// return 0;
//}

//#include<stdio.h>
//int main()
//{
// //const-常属性
// //const修饰的常变量
// const int num = 4;
// printf("%d\n", num);
// /*num = 8;
// printf("%d\n", num);*/
// return 0;
//}

//#include<stdio.h>
//int main()
//{
// int num = 4;
// //字面常量
// 3;
// 4;
// 5;
// return 0;
//}


2.字符串

字符串--由双引号引起的字符,例如"abcde";"  "为空字符串

 字符串结束标志\0,不算字符串内容,是转义字符

数据在计算机存储的时候,是二进制。

ASCII 编码  a-97;z-120;A-65;Z-90;0-48;9-57


#include <stdio.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c' };
char arr3[] = { 'a','b','c',0};
printf("%d\n", strlen(arr1));//strlen-计算字符串长度
printf("%d\n", strlen(arr2));// % d - 打印整型十进制数据
//3 15(为随机值) 3
return 0;
}
//#include <stdio.h>
////字符串
//int main()
//{
// char arr1[] = "abc";//字符串放入数组里面
// //"abc"--'a''b''c''\0'--字符串结束标志
// char arr2[] = {'a','b','c',0};//单引号''引起的a为字符a
// printf("%s\n", arr1);//%s打印字符串
// printf("%s\n", arr1);
//
// return 0;
//}


3.转义字符

转义字符--转变意思

\?--老版系统,防止多个?被解析成三字母词

\\--反斜杠,防止 \ 被解释为转义序列

\'--字符常量单引号

\"--字符串内部双引号

\a--警告字符

\b--退格符

\f--进制符

\n--换行

\r--回车

\t--水平制表符

\v--垂直制表符

\ddd--1~3个八进制的数字

\xdd--dd为2个十六进制数字

#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n",strlen("c:\text\32\test.c"));//输出结果13
printf("%c\n", '\32');
//\32--两个八进制的数字
//32做为八进制代表那个十进制数字,ASCII码值,对应字符为➡
//32--3*8^1+2*8^0=27
printf("%c\n", '\132');
//8^2+3*8^1+2*8^0=90

return 0;
}
//#include<stdio.h>
//int main()
//{
// printf("%c\n",'\'');//\'--打印字符常量单引号
// printf("%s\n", "\"");// \"--字符串内部双引号
// return 0;
//}
//#include<stdio.h>
//int main()
//{
// printf("are you ok\?\?\n");
// return 0;
//}
//#include<stdio.h>
//int main()
//{
// printf("c:\text\32\test.c\n");
// printf("c:\\text\\32\\test.c");
// //“\\”反斜杠,对\进行转义,防止被解释为转义序列
// return 0;
//}
//#include<stdio.h>
//int main()
//{
// printf("abcdef\n");//\t-水平制表符-tab键
// return 0;
//}


4.注释

 注释风格

  • c语言/* xxx*/ 

缺陷,不能嵌套注释

  • c++ //xxx //

代码难懂,注释文字解释

5.选择语句

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
int input = 0;
printf("加入比特\n");
printf("好好学习?(1/0)>:");
scanf("%d", &input);//1/0
if (input == 1)
printf("offer\n");
else
printf("卖红薯\n");
return 0;
}


6.循环语句

  • while循环
  • for循环
  • do ... while语句

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
int line = 0;
printf("加入比特\n");
while (line < 20000)
{
printf("敲代码:%d\n",line);
line++;
}
if (line >= 20000)
printf("offer\n");
return 0;
}


7.函数

int                            Add      (       )            {       }

函数返回类型          函数名   函数参数          函数体

#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);
sum = Add(2, 3);
printf("sum = %d\n", sum);
return 0;

}



  • 自定义函数
  • 库函数

8.数组

一组相同类型元素集合

int arr[10] = {1,2,3,4,5,6,7,8,9,10};

数组名称          有下标从0开始

     0 1 2 3 4 5 6 7 8 9

确定访问的元素

#include <stdio.h>
int main()
{
/*int a = 1;
int b = 2;
int c = 4;*/
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个存放10个整数数字的数组
int i = 0;
while (i < 10)
{
printf("%d\n", arr[i]);
i++;
}
/*printf("%d\n",arr[4]);*///下标的形式访问元素
//arr[下标]
/*char ch[20];
float arr2[5];*/
return 0;
}


9.操作符

  • 算数操作符

+ ,- ,* , / , %

#include <stdio.h>
int main()
{
int a = 5 / 2;
int b = 5 % 2;//取模,余数
printf("%d\n",a);
printf("%d\n",b);
return 0;
}


  • 移位操作符(2进制)

>>              <<

右移           左移

#include <stdio.h>
int main()
{
int a = 1;
//整型1占4个字节-32bit,
//二进制0、1
//0000000000,0000000000,0000000000,01
int b= a << 1;
//0000000000,0000000000,0000000000,10
printf("%d\n", b);
printf("%d\n", a);
return 0;
}


  • 位操作符(二进制,0为假1为真 )

&                                         |                                      ^

按位与                          按位或                              按位异或                   

只要有0,即为0          只要有1,即为1                对应相同,为0

                                                                              对应相异,为1

  • 赋值操作符

=          +=(复合赋值符)           -=            *=        /=      &=     ^=      |=      >>=       <<=

赋值    自身加  自身减

#include <stdio.h>
int main()
{
int a = 0;
a = 20;//=赋值 ==判断相等
a = a + 10;//a+10赋值给a
a += 10//a自己+10
return 0;
}


  • 单目操作符

!                逻辑反操作

-                  负值

+                  正值(通常省略)

&                  取地址

sizeof           操作数的类型长度(计算的是变量、类型所占空间大小,单位字节)

~                  对一个数二进制取反

--                 前置、后置--

++               前置、后置++

*                  间接访问操作符(解引用操作符)

(类型)          强制类型转换

对应的有双目操作符、三目操作符(有两个、三个操作符)

#include<stdio.h>
int main()
{
int a = 10;
int b = 0;
int sz = 0;
int arr[10]={0};
//计数组的元素个数=数组总大小、每个元素的大小
sz=sizeof(arr) / sizeof(arr[0]);
printf("%d\n", a);
printf("%d\n", !a);
printf("%d\n", b);
printf("%d\n", !b);
printf("%d\n",sizeof(a));//4
printf("%d\n", sizeof a);//4
printf("%d\n", sizeof(int));//4
printf("sz=%d\n", sz);//sz=10
return 0;
}