道阻且长,接下来就要开始数据结构的学习,而学不可以不练,在接下来的学习中,数据结构学习的同时,c语言训练也要开始更新了~
NO.1 函数
1.void函数声明
这道题一看就秒了(开玩笑)我们在知道答案的同时,也要明白其中的知识点(其实就是我的表达能力不好,想要向别人解释有点困难,所以借着复习来锻炼自己😝)
考点:函数声明 void
解析:void是这个函数返回的类型,这个类型就是没有类型的空类型,代表这个函数的返回值是空。
void也用于声明一些万能指针. 比如你要用一个指针,但是还不确定这个指针会指向什么类型的变量,那就申请一个void类型的指针,它就叫做万能指针,因为它可以指向任何类型的变量.
在c语言中,凡不加返回值类型限定的函数,都会被编译器作为返回整型值处理
NO.2 交换变量
失误
在实际编写代码时尽量不要用B,因为可能会出现溢出(即两个变量之和可能会超过变量类型能表示的最大范围)。
可以改为a^=b;b^=a;a^=b;不需要考虑溢出,a^=b,此时a记录了a和b两个数中二进制的异同情况,1表示不同,0表示相同。
操作符知识-CSDN博客
NO.3 指针
一.函数指针和指针函数
1.指针函数:当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,用于需要指针或者是地址的表达式中。是指带指针的函数,本质是函数
声明格式:类型说明符 *函数名(参数)
2.函数指针:指向函数的指针包含了函数的地址,可以通过它来调用函数。
声明格式:类型说明符 (*函数名)(参数)
拓展(复习):数组指针和指针数组
二.定值和定址
const意思为"只读的",口诀:左定值,右定址(const在*的左边值不能变,在*的右边地址不能变)。
const int和int const的意思是一样的,也就是说,我们要从const* int和int*const中选择。
如果是const* int ptr,那么const限制的是*ptr,也就是地址,而ptr的值是可以改变的
如果是* const int ptr,那么const限制的是ptr,也就是值,而地址是可以改变的
如果是const int* const x,那么值和地址都被限制,不能改变。
注意:只要 在*之后有 const限定符,则该指针在声明时必须初始化 : 否则就是野指针
NO.4 分支和循环
一.if语句
这道题本身很简单,而需要注意的是,对于for(;;)循环体,中间的表达式一般是个判定条件,返回布尔型。而for(表达式1;表达式2;表达式3)中,表达式2是判断,j=0这个表达式为0,因此判断条件为false,不会执行循环。
赋值语句的返回值是赋给的值
NO.5 操作符
三目操作符从右到左计算
NO.7虚函数和纯虚函数
纯虚函数是以=0为结尾的,并加上virtual关键字,且没有函数体的函数。
需要注意:
1、当类声明中包含纯虚函数时,则不能创建该类的对象
2、包含纯虚函数的类只用作基类
3、在类中使用=0指出类是一个抽象基类,在类中不可以定义该函数,只能声明
NO8.内存
NO9.数组
NO.10 delete
NO.11指针