函数的声明
1.概念:是对编译系统的一个说明,用于通知系统在函数中所调用的函数是什么类型
2.作用:可以告诉编译器我将定义什么函数,从而让别的函数能方便调用
3.用法:把函数去掉{}拷贝到声明区域(函数里或外)就可以了,返回值 函数名(形式参数1...)
4.特点:①仅声明可以不创建函数,但要调用必须定义函数;
②声明可以只有参数类型,省略参数名;
③函数使用前应声明,不声明就默认当返回值是int类型来处理,很可能出错;
④声明区域可以在其他函数里或函数外,只要放在本函数调用之前就可以。
C语言的头文件
1.概念:是C语言中以.h结尾的文件
2.作用:用于声明一个函数,把多个代码文件中的函数,声明在这个文件中,以便于重用、防止定义的冲突
3.用法:定义--新建一个以.h结尾的文件,把需要用到的函数的声明直接放在里面
引用--自定义的头文件:#include "头文件名.h"
编译器类库里的头文件:#include <头文件名.h>
4特点:①在头文件中仅作声明,不做具体实现
②在头文件有声明只能确保编译成功成.o文件,但不确保能连接成功
③自定义的头文件引用时必须要由路径
#include的用法
1.是C语言中的一个预处理指令
2.作用:用于把一个文件的内容拷贝到这行命令所在的位置
3.用法:引用--自定义的文件:#include “文件路径和名称”
编译器类库里的文件:#include <文件名>
4:特点:①可以定义在函数内也可以放在函数外
②必须包含路径,省略或./表示当前路径,/开头表示绝对路径,../表示上一层路径
③以#开后,后面不能加分号
④必须定义在要使用之前,否则可以编译通过成.o文件,但不能连接成功
进制
1.概念:是人们规定的一种技术方法
2.用法:二进制逢二进一(0b开头),八进制逢八进一(0开头),十进制是逢十进一,十六进制逢
十六进一(0x开头)
3.进制的打印输出:%o表示输出不带符号八进制整数
%x表示输出不带符号的十六进制整数
%d表示输出有符号十进制整数
%u表示输出不带符号十进制整数
注意:二进制不可以直接输出,有符号可以有负数表现
数据取值范围
unsigned int啊=-214 不能定义超出数据类型取值范围的数,否则定义出错
unsigned 和signed只能修饰int型,修饰int时,int可以省略
无符号的int取值范围是:包含最高位的二进制的次方数-1
类型说明符
1.概念:是C语言中用来说明某个变量是什么类型的关键字
signed--->能修饰int %d
unsigned--->能修饰int %d
short---->能修饰int%d
long--->能修饰int %ld 和double %Ld
long long --->能修饰int %lld
unsigned long --类型说明符可以累加,如果省略了基本数据类型,那么基本数据类型是int
unsigned short --表示无符号的短整型
long short --错误的,long 和short只能修饰基本数据类型
有符号的char类型是-128~127
无符号的char类型是0~255
位运算
1.概念:是直接对整数在内存中的二进制位进行运作的方法(只能操作整型数据)
2.作用:直接通过操作二进制的位来实现运算
3.用法:
&与运算:对应两个二进位均为1时,结果位才为1,否则为0(有假为假==0)。
|或运算:对应的两个二进位有一个为1时,结果位就为1,否则为0(有真为真==1)。
^异或运算:对应的二进位不同时为1,否则为0(不同为真==1,相同为假==0)。
异或时注意:1.相同整数相^的结果是0
2.一个数^另一个数两次结果不变,为它本身
3.整数相^跟顺序无关
~取反运算:对整数a的各二进位进行取反,包括符号位(0变1,1变0,真假互换)。
取反是单目操作符,也就是只操作一个数
注意: ①计算机里:补码==原码==反码(不是指表现形式相等,是指真实的值相等)
②正数的补码、反码、原码的表现形式是一样的
③负数的补码=反码+1,反码=原码符号位不变其余取反
<<左移:把整数a的各二进位全部左移n位,高位丢弃(包括符号位),低位补0。
左移n位其实就是乘以2的n次方(要求符号位不变,符号位改变则正负改变)。
3<<1 --->6 --->3*2的1次方
3<<2 --->12 --->3*2的2次方
3<<3 --->24 --->3*2的3次方
>>右移:把整数的各二进位全部右移n为,符号位不变。高位的空缺是正数补0;
是负数高位是补0或是补1,取决于编译系统的规定,右移n为其实就是除以2的n次方。
3>>2 --->1 --->3/2的1次方
3>>1 --->0 --->3/2的2次方
转义字符
1.概念:用来改变字符原有的含义
2.作用:用来表示常见的那些不能显示的ASCII字符
数组
1.概念:用来存储一组数据的容器
2.作用:用于把同一类型的一组数据统一管理起来
3.用法:定义--数据类型 数组名[长度(数量)]
初始化--类型 数组名[(长度)]:={元素1,元素2...}
赋值:数组名[角标(索引)]=值
使用:数组名[角标]; 如int a = arr[0]
4.特点:①数组必须要定义长度(正整数),定义时可初始化(长度必须是常量)或之后单独初始化
②数组是有序的,每个数据都有角标,从0开始分配,角标不能>=数组长度,类型一致
③数组有地址(数组名),里面的元素也有地址,数组当参数时(长度可省)传递的是地址
④数组当参数传递时是指针类型,所以如果需要用数组长度要额外传递
如果省略长度,那么后面初始化几个元素,长度就为几
当没有在定义数组时赋值,不能省略长度,如int arr8[ ] 错误
类型要一致,不然会丢失精度 ,如 arr7[0]=2.2 错误
数组第一个元素的地址就是这个数组的地址 |
|