【第22期】观点:IT 行业加班,到底有没有价值?

C/C++函数的基本问题

原创 2016年05月30日 17:47:44

函数三要素:
- 函数定义
- 函数原型
- 函数调用
一、函数定义
函数可以分为两类:
(1)没有返回值的函数

void functionName(parameterList)
{
    statament;
    return:
}

(2)有返回值的参数

typeName functionName(parameterList)
{
    statament;
    return:
}

注意:对于返回值的类型规定:不能是数组,但可以是其他任何类型——整型、浮点型、字符型、指针,甚至可以是结构和对象。但我们可以将数组作为结构或对象组成部分来返回。函数的参数可以使一个或多个,并且类型可以不同。
二、函数调用
函数调用时注意参数的类型和数目匹配、返回值引用等相关问题。在此不再作陈述。
在函数中声明的变量为函数私有,并且在被调用时,计算机为这些变量分配内存,在函数结束时,计算机释放这些变量使用的内存。

三、函数原型
所谓的函数原型即函数声明,格式如下:

typeName functionName( type parameter1,type parameter2..);

这里我们需要注意的是后面的“;”不能省略,因为函数原型是一个语句,所以必须加分号。
这里我们来思考一个问题:为什么需要函数原型??
- 原型描述了函数到编译器的接口,也就是说将函数的返回值类型以及参数的类型和个数告诉编译器,因此编译器知道如何解释这个函数。
- 提高程序运行效率。编译器在搜索文件时会停止对main()函数的的编译,如果不提供原型,编译器就需要花费大量的时间在文件中查找,从而降低了运行效率。
- 避免使用原型的方法是:在使用它之前定义它。
具体来书函数原型保证以下几点:
- 编译器正确处理返回值
- 编译器检查使用的参数类型是否正确
- 编译器检查使用参数的个数是否正确

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

【C/C++】指针基本问题

指针基本问题

C++面试题

经典C++面试题 1.介绍一下STL,详细说明STL如何实现vector。 Answer: STL (标准模版库,Standard Template Library.它由容器算法迭代器组成。 STL有以下的一些优点: 可以方便容易地实现搜索数据或对数据排序等一系列的算法; 调试程序时更加安全和方便; 即使是人们用STL在UNIX平台下写的代码你也可以很容易地理解(因为STL是跨平台的)。 vector实质上就是一个动态数组,会根据数据的增加,动态的增加数组空间。 2.如果用VC开发程序,常见这么几个错误,C2001,c2005,c2011,这些错误的原因是什么。 An

C/C++基本问题整理

1,  i 初值8          printf("%d %d",i++,i++);                    结果 8 8              printf("%d %d...

C/C++面试题目汇总

C/C++面试题目汇总 最近因为找工作,收集了很多C语言方

自己实现基本的C标准库字符串处理函数——基本问题(转载)

字符串是C语言的精华之一,C语言是笔试考题的核心知识点,不管你是学c++,学java还是c#、.net,还是脚本什么的,最好还是懂点C吧,不懂C笔试或许比较吃亏。所以在笔试面试中,字符串的问题是经常出...

自己实现基本的C标准库字符串处理函数——基本问题(转载)

字符串是C语言的精华之一,C语言是笔试考题的核心知识点,不管你是学c++,学java还是c#、.net,还是脚本什么的,最好还是懂点C吧,不懂C笔试或许比较吃亏。所以在笔试面试中,字符串的问题是经常出现的,其中有一类问题就是自己实现一些基本的C标准库的字符串处理函数或其他C标准库函数。 问题一描述: 用标准C写一个判断给定字符串长度的函数。要求:不可使用库函数,字符串用ch

C++笔记-0(C++基本问题,对C的拓展)

一、命名空间 C的命名空间 只有一个全局作用域。调用1.dll时,一下子调到3.dll了。 C++提出命名空间 namespace A { int a=0; } namespace B { ...

C++笔试题汇总

1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是
  • kenkao
  • kenkao
  • 2011-06-21 22:16
  • 1423

C/C++表达式求值(参考后自己的一些理解)

经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,...

C++之MFC

第一部分:MFC导论  Visual C++ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的 C++ 来开发出专业级的 Windows 应用程序。为了能充分利用这些特性,你必须理解 C++ 程序设计语言。掌握了C++,你就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。该层次 结构包容了 Windows API 中的用户界面部分,并使你能够很容易地以面向对象的方式建立 Windows 应用程序。这种层次结构适用于所有版本的 Windows 并彼此兼容。你用 M
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)