一周学完c系列 第三天笔记
运算符与表达式
运算符
操作数量
单目运算符 - &
双目运算符 + >
三目运算符 ?
用途分类
算数运算符 + - * / % ++ --
一元运算符 - ++ --
二元运算符 + - * / %(%必须在整型数据中操作)
自增自减运算符只适用于变量
在前先运算后代入 即先改变变量自身值后代入表达式
在后先代入后运算 即先代入表达式后改变变量自身值
关系运算符 > < >= <= ==
位运算符
逻辑运算符
赋值运算符 = += -= *= /=
变量名=表达式
右边的值储存到左边变量名所标识的内存空间中
可以连续使用
eg:a+=b a=a+b
逗号运算符 ,
分割两条语句
逗号表达式的值是最右边的值 注意 表达式还是语句
求大小运算符
sizeof()
获得某一个数据或者数据类型占用内存的大小
取地址运算符
&
最终返回地址
优先级
复合表达式中先使用哪个运算符
一般,单目最高
括号提高优先级
结合性
优先级相同时 先使用哪个运算符
表达式 求值表达式 最终都会被计算出得到表达式的值 使用此值代表整个表达式
赋值表达式 =
算数表达式 + - * / %
关系表达式 > < ==
逻辑表达式&& || ! !=
函数表达式=fun()
一维数组
内存
变量名就是所开辟内存空间的首地址
数组
把多个 相同类型 的数据集合到一起的数据类型
数据类型 数组名[数组长度]
命名规则同变量名
数组名后接方括号 指定数组容量
数组元素使用
数组通过下标访问,此时,方括号内为元素所在数组位置
下标从0开始计数
数组的存储空间是连续的
数组长度必须是常量
数组下标可以是常量或者变量
最大下标
定义时给出的最大元素个数减一
数组元素
保存在数组中的数据
下标
元素在数组中的位置
访问数组元素
数组名[下标] 获取或修改数组数据的过程
遍历数组
访问所有数组元素的过程
下标越界
访问元素时超出或小于数组边界
数组初始化
定义数组时直接初始化;
全部初始化
给出初始值和数组的元素个数一样
部分初始化
给出的初始值小于数组元素个数
使用给出的初始值初始化数组前面的元素,对于没有给出初始值的元素,默认以0填充
自动推测数组最大元素数
定义时,未给出最大元素个数
按照初始化值的个数给出
不能为数组整体赋值;
数组长度,初始化时如果省略必须赋初值,会根据数据个数自动计算数组长度;
数组越界 c语言不会检测;
字符串数组
字符串中的每个字符作为一个数组元素存储(占一个字节)
字符串数组是变量 字符串是常量
空字符‘\0’自动添加到字符串的内部表示中止,通常在末尾
对于wchar_t类型字符常量 需要在字符前加L eg:L'A';
char型初始化用花括号逐个初始化的时候需要自加‘\0’;双引号时不需要;
wchar_t初始化前边需要加L
字符串输入输出
逐个输入输出 %c
整个字符串一次输入输出 %s
‘\0’标示何时停止
scanf_s 函数 输入时需要给出最大长度
?{'0','1',98.97}
字符串操作函数
string.h头文件
strlen 求字符串长度
strcpy/strcpy_s 字符串拷贝函数 ?数据长度标识 双标还是只标后者 !前标 只标被改变的字符串
strcmp 比较俩字符串是否一样 <0 左比右小 =0 左右等 >0 左比右大
strcat/strcat_s 将两个字符串拼接到一起
strstr 在字符数组1中查找是否存在数组2
未找到 返回0
找到 返回字符串1的地址+偏移
eg:strstr(str1,str2)
三大结构
算法 解决问题的步骤
顺序结构
选择结构
if(表达式)
{
语句序列;
}
难点:表达式编辑选择
表达式省略问题
for语句一般形式中‘表达式1’可以省略,此时应在for语句之前为循环变量赋初值。
如果表达式2省略,循环无终止进行
表达式3也可以省略,此时需要另设计循环结束条件
可以只给表达式2即只给循环条件
表达式填写问题
表达式1可以是设置循环变量初值得赋值表达式,也可以是与循环变量无关的其他表达式
表达式2一般是关系表达式或逻辑表达式,但也可以是任意表达式,只要其值为非零就循环执行表达体
表达式3一般是修改循环变量语句也可以是任意表达式
循环结构
while(表达式)
{
语句序列;
}
难点:循环体或循环变量选择
流程图
描述算法工具
今天最
页:
[1]