函数:
函数在调用之前必须进行声明或者定义,函数的声明:返回值类型 函数名(参数类型 参数名称.......);其中参数名称可以省略;
函数的形参是实参的一个拷贝,形参改变实参不会改变,除非参数是数组,引用;
数组作为参数传递时可以不写数组的成员个数 如:void test(int a[]){....};
二维数组作为参数传递的时候可以不写明有多少行,但必须写明有多少列 void test(int a[][5]){.............}
常用库函数:
cmath.h
1.开平方
double sqrt(double x);
2.求常数e的x次方
double exp(double x);
3.求x的y次方
double pow(double x, double y);
4.求对数ln(x)
double log(double x);
求对数lg(x)
double log10(double x);
其他用换底公式
5.求x绝对值
int abs(x);
long int abs(long int x);
double fabs(double x);
6.三角函数
求正弦
double sin(double x);
求余弦
double cos(double x);
求正切
double tan(double x);
反正切
double atan(double x);
7.取整函数
向上取整
double ceil(double x);
向下取整
double floor(double x);
8.产生随机数 0~32767
int rand(void);
9.四舍五入
int round(double x);
;
递归:
函数自己调用自己,递归需要终止条件;
位运算:(对一个bit或若干个bit操作)
按位与:& 对应的两个二进制位都为1时结果才为1,否则为0,如果要将short型n低8位的全部置成0;n&=0xff00; 例:如何判断一个数的第7位是否为1,可以i=n&0x80,看是否等于0x80;
按位或:| 对应的两个二进制位都是0时结果才为0,否则为1;
按位非:~ 将0变为1,1变为0
按位异或:^ 对应的两个二进制位不同时结果为1,否则为0;异或的特点:a^b=c,则有c^b=a,c^a=b;可进行最简单的加解密; 按位异或可以不通过定义两个临时变量来交换两个变量的值: a=a^b;b=a^b;a=a^b;按位异或通常用来将某些位取反,而其他位保持不变,如将n低8位取反,其他位不变,则将n^=0xff.
右移:>> a>>b:a右移b位,右移的时候,低位被丢弃,高位的引入与符号位保持一致,即符号位为1时,右移一,最高位也要补一,右移的结果等于 左边的操作数a除以2的n次方,往小里取整
左移:<< a<<b:a左移b位,左移的时候,高位舍弃,低位补0,左移n位,实际上就是乘以2的n次方.
字符串:
字符串三种表现形式:用双引号括起来的是字符串常量;存放于字符数组中,以' '(ASIIC码为0)结尾;string对象.
字符串常量所占用的内存为字符个数+1
用字符数组存放字符串的时候,数组元素个数至少为所存放字符串的字符个数+1;
用scanf.cin获取所输入的字符数组时,会自动在末尾补0;