1.常量
变量是用来描述变化的量,常量就是描述不变的量。
常量分为 : 字面常量,const修饰的常变量,#define定义的标识符常量,枚举常量。
1. 字面常量,例如:‘a’,“asdf”,3.14,100
2. const修饰的常变量:例如,如果const int a=10;表明a具有常量属性,就是不可被改变,但是本质上还是个变量。不能充当常量。
补充:int arr[10]={0};在c99之前的语法中数组大小10只能是一个常量,但是在c99之后的标准中增加了一个变常数组的概念,这里指定数组大小的时候,可以使用变量了。
3. #define定义的标识符常量:相当于常量不能更改的
4. 枚举常量enum(枚举关键字)
枚举就是一一列举,枚举是C语言提供的一种自定义类型的方法,例如:性别,只能是男和女,三原色只能是红蓝绿。并且这里的各个枚举常量都是有值的默认为012....。
2.字符串+转移字符+注释
字符串:
由双引号引起来的一串字符称为字符串后面会隐藏一个\0。字符串是用来初始化数组的例如:
后面的‘\0’是个结束标志,是一个转义字符遇见\0表面字符串结束,不算作字符串内容。
拓展:‘\0’
\0就是一个结束标志,arr1后面会默认带一个\0,上述arr2里面没有遇到\0就是没有结束标志,他会一直向后面打印直到遇到\0才会停止打印。也可以主动加上。
转义字符
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\' | 用于表示字符常量',让他变成一个普通的单引号。 |
\" | 用于表示字符串内部的双引号,让他变成一个普通的双引号。 |
\\ | 用于表示一个反斜杠,防止他被解释为一个转义字符。 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。如:\130 X |
\xdd | dd表示2个十六进制数字。如:\x30 0 |
\?的作用就是防止多个问号被解析成三字母词。例如:printf((“are you ok??)”);打印出来有可能被翻译成(are you ok]。这是由于??)是个三字母词表示]。但是有的编译器不支持三字母词。
\ddd: 例如:\130,八进制的130转换从十进制就是88,在ASCII表中88代表大写的X。所以\130表示X.
\xdd:例如:\x30,十六进制中30转换成十进制就是48,在ASCII表中48表示0。所以\x30表示0。
拓展:strlen
strlen是个库函数,是用来求字符串的长度(不包含\0)。对应的头文件为#include<string.h>
strlen在遇到\0的时候才会停止计算。所以在计算arr2的时候会出现一个随机值,计算时要在后面自己加上一个’\0‘。而arr1后面会默认带一个\0。
注释
注释是用来解释代码的;
3.选择语句
4.循环语句
重复的结构有
1.while循环
2.for语句
3.do while语句
5.函数
这里的SUM就是一个函数,自定义创建的函数。在后面提到就可以用,一次封装多次利用。
6.数组
数组是一组相同类型的元素的集合。
创建的时候arr[10]这里[ ]里面放的数为arr数组的长度,
在打印的时候这里[ ]里面放的是下标。printf("%d",arr[2]);表示打印下标为2的元素。
int arr[10] | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
在c99之前我们在创建数组的时候不支持变长数组所以 int arr[10];这里[ ]内部的数不能是变量,但是c99之后是支持变长数组的所以[ ]内部可以为变量的。
7.操作符
算术操作符 | + - * / % (取模的时候两边的数字必须是整数) |
移位操作符 | >> <<(移动的是二进制位) |
位操作符 | & ^ |(位操作的也是二进制位) |
赋值操作符 | = += -= *= &= ^= |= >>= <<= |
+=:的用法是 a+=10; 相当于 a=a+10;一个是给自己加上一个10;一个是a加上10在赋值给a。
-=,*=,/=都是一个意思。
拓展:
float类型的数据打印的时候用的是%f
double类型的数据打印的时候用的是%lf
char类型的数据打印的时候用的是%c
short int long longlong类型的数据打印的时候用的是%d