在getchar()中输入 ^Z / ctrl Z 即可输入EOF终止文件
对于数组来说,数组名就是地址
for(初始化 ;判断真假 ;调整变量) 【判断部分省略则判断条件为恒为正;两个“ ; ; "不可省略】
{
}
二分查找法/折半查找法:对于较大数据而言,查找速度远大于从前往后依次查找(查找次数为log2n)
Sleep(数字):使程序休息/停留一段时间(以ms为单位;需要引用头文件windows.h)
system() :执行系统命令的一个函数(例:清空屏幕:system("cls");需要引用头文件stdlib.h)
==不能用来判断两个字符串是否相等,应该使用一个库函数——strcmp( 字符串1 ,字符串2 )
两个字符串相等则返回结果 0 ,若字符串1>字符串2,则会返回一个大于0的数,若字符串1,则会返回一个小于0的数;strcmp函数对应的头文件为string.h
求最大公约数:辗转相除法
sqrt():求数的开平方(需要引用头文件math.h)
生成伪随机数:rand()[需要包含头文件stdlib.h;生成的数位于0~32767之间](如果未重新初始化随机数种子,那么生成的随机数顺序相同,即使用srand()函数,为使每时每刻输入的数字不一样,srand常搭配时间戳使用,使其根据时间戳输出不同的随机数种子;)
srand()函数也要使用头文件stdlib.h[使用示例:srand((unsigned int)time(NULL))]
时间戳是当前时间所对应的数字减去计算机起始时间:1970.1.1.0:0:0,再将其转换为当前时间(时间戳也需要使用头文件time.h)
char strcpy(char destination,const char * source):将(字符)数组source 里的内容拷贝到(字符)数组destination中,需要引用头文件string.h;常用于字符串拷贝
void* memset(void* ptr ,int value ,size_t num):将指针ptr指向的相应的内存块的前num个字节设置为特殊的value数字/字符(类似于将前num个字节的内容替换成占相同字节的value)
递归:函数内部调用自身形成一个循环(递归必要条件:1.存在限制条件,当满足限制条件。递归不再继续
2.每次递归调用之后越来越接近限制条件)
递归常见错误:栈溢出(stack overflow),栈区空间使用到完全没有多余的空间(思考题:汉诺塔问题、青蛙跳台阶)
局部变量和函数形参放置于栈区;动态开辟的内存放置于堆区;全局变量,staic修饰的全局变量放置于静态区;
数组传参,传过去的不是整个数组,而是第一个元素的地址(同个数组的元素存放地址是连续的,所以可以通过数组元素对应的十位数进制自增来求整个数组)