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;
}