1. 常量
- 字面常量(直接写出的数字)例 int main(){ 3//字面常量 return 0;}
- const修饰的常变量 (const 指的是 常属性例如: const int num = 1;代表num值不可以改变了)
- #define定义的标示符常量 (#define n 10)就是定义的n的值为10 的一个常量
- 枚举常量(枚举关键字:enum)例(枚举性别) enum Sex{ male,female};而这两个值为枚举常量,在main中就可以写成 enum Sex s = male;例图
2.字符串+转义字符+注释
字符串
由双引号引起的一串字符 叫做字符串 :“” 如下 可以用字符数组来存放 字符串
注:字符串的结束标志是一个\0的转义字符,在计算字符长度的时候\0只是结束标志 不算内容。
strlen()求字符串长度的函数 例: int a = strlen("abcd"); a的值为4
strlen的头文件 :#include <string.h>
由单引号引起的叫字符: ‘’ 如下 可以用字符数组来一个一个存放 字符
如图 其实 “abc” -- 'a','b','c','\0' 字符串的末尾多了一个斜杠0 ‘\0’是字符串的结束标志遇到‘\0’就不再打印了
转义字符
\? 书写连续多个问号使用,防止被解析成三字母词: ?? +) -->三字母词
\' 用于表示字符常量
\" 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符 tab
\v 垂直指标符
\ddd ddd表示1~3个八进制的数字。
如:\32 (3 2两个数字作为8进制代表的那个十进制数字)为26作为ASCII码值代表的字符
\32 -->十进制26--->作为ASCII码值26的那个字符 下图为八进制转化十进制
\xdd dd表示2个十六进制数字。如:\x61
如上一样
\后面跟x就是十六进制 \后不跟x就是八进制。
注释
1 C语言风格 /*xxxxxxx*/ 缺陷是不能嵌套注释
2 C++风格 //xxxxxxx 可以注释一行也可以多行
3while 循环
格式 while("判断条件"){
代码块
}
4自定义函数
例如数学上面的
f(x) = 2x+1
f(x,y) = 2x+3y
你给一个自变量 返回一个因变量
例如求和函数
int Add(int x , int y){ //Add为函数名 x ,y 为两个函数整型参数 add前面int为函数返回类型
int z = x+ y; // 函数运算过程
return z; //返回值
}
sum = Add(num1,num2); / /调用
5数组
C语言中给定数组的定义:一组相同类型元素的集合
数组定义
int arr[10]; // 定义一个存放10个整数数字的数组 里面没有值
int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //定义一个整型数组,最多放10个元素 = 后为赋值 下标从0-9
6操作符
算数操作符 :+ - * / %
(加减乘除取模)
移位操作符:<< >>
(左移 右移 )移动的是二进制 如下左移动一位 后面就是10 (移动后 补0)则b输出为2
位操作符: & ^ |
(2进制位)按位(&与 | 或 ^ 异或)
例如下 与是两个为真则为真 或为有一个1就是1 异或是对于的二进制位相同为0 不相同为 1
a的二进制是 011
b的二进制是101
那么c等于 a&b 的二进制就是 0 01
则转化为十进制输出 1
赋值操作符: = += -= *= /= &= ^= |= >>= <<=
a = a+10 与 a+=10 相同
单目操作符 : ! - + & sizeof ~ -- ++ * (类型)
(有单目就有 双目 三目 例:a+b中 + 为双目操作符 左边一个操作数 右边一个操作数)
! 逻辑反操作 - 负值 + 正值 & 取地址 sizeof 操作数的类型长度(字节)
~ 对一个数的二进制按位取反 -- 前置 后置 -- ++前置 后置 ++
* 间接访问操作符(解引用操作符) (类型)强制性类转换
关系操作符 :
>
>=
<
!=
==
逻辑操作符:
&& 逻辑与 || 逻辑或
条件操作符(三目操作符):
表达式1 ?表达式2:表达式3 (例如:max = a>b? a:b)比较a,b值的大小
说明:表1为真时 执行表2 则表2结果为整个结果 当1为假时 执行表3 则表3结果为整个结果
逗号操作符(由逗号隔开的一串表达式):
表达式1,表达式2,表达式3,....表达式n
7.原码 ---> 反码 --->补码(计算过程的数字)
只要是整数,内存中存储的都是二进制的补码
正数--原码,反码,补码 相同
负数--存的是补码
原码:直接安照正负写出的二进制序列
反码:原码的符号位(32位中第一位 是0为整是1为负)不变 其他位按位取反得来
补码:反码加1得到
例如 -2的原码
10000000000000000000000000000010
-2的反码
11111111111111111111111111111101
-2的补码
11111111111111111111111111111110