网站建设关键性开发工具,襄阳网站建设价格低,哈尔滨建设集团有限公司,游戏网页在线玩上期我们说到了部分c修补C语言的不足#xff0c;今天我们将剩下的一一说清楚。
函数重载
(1).函数重载的形式
C语言不允许函数名相同的同时存在#xff0c;但是C允许同名函数存在#xff0c;但是有要求#xff1a;函数名相同#xff0c;参数不同#xff0c;构成函数重…上期我们说到了部分c修补C语言的不足今天我们将剩下的一一说清楚。
函数重载
(1).函数重载的形式
C语言不允许函数名相同的同时存在但是C允许同名函数存在但是有要求函数名相同参数不同构成函数重载。
那么有哪几种参数不同的情况可以呢
(2).函数重载编译器如何区分
当我们着手一些大的项目时就会存在声明和定义分离的情况那么这个时后编译器还能区分吗 答案是可以的这个时候就需要函数名修饰规则登场了。(注意函数名修饰规则每个编译器都不一样不需要知道内容只需要知道有这个规则可以区分函数。) 引用(重点)
引用并不是定义新变量而是给一个变量取别名。如图所示会发现他们指向同一块地址。
(1).引用的使用场景
①引用做参数
当我们希望形参的改变影响实参就可以传引用。例子Swap交换函数曾经我们书写还需要穿他的地址解引用…但是我们现在直接传引用即可。
void Swap(int a, int b)
{int tmp a;a b;b tmp;
}
int main()
{int x 10;int y 20;Swap(x, y);cout x endl;cout y endl;return 0;
}②引用做返回值
int func()
{int a 20;return a;
}
int main()
{int ret func();return 0;
}上述代码有错吗有什么错 答案有错a是局部变量当函数结束a的生命周期结束了这个时候引用返回的是a本身而不是a的值就会存在野引用。所以引用不能用于返回临时变量和局部变量。 可以用引用返回的全局静态堆变量。
(2).引用的特性 (3).引用和指针的区别 内联函数
有些比较短的函数我们需要多次频繁的去调动但是不断创建栈帧就会浪费空间那么C语言是怎么做的呢宏函数但是宏函数存在很多的缺陷所以C就出现了内联函数。 内联函数(inline)调用地方展开不会建立栈帧。 auto自动识别类型
(1).使用场景
①自动识别复杂类型
我们在学习C语言的时候有函数指针和数组指针等等复杂类型那么这个时候就可以用auto来自动识别。
②范围for
范围for只能用在数组和其他数据结构中
空指针nullptr
在c中NULL表示空指针但是在c中出现了一个问题。发现了NULL和0没区别。从此以后初始化空指针用nullptr
以上就是所有入门小知识恭喜大家迈进了c大门~希望大家永远保持热情勇敢走下去