美文网首页我爱编程
你号称是C/C++程序员,但是你却不明白这个(一)

你号称是C/C++程序员,但是你却不明白这个(一)

作者: 猿人面对面 | 来源:发表于2018-01-23 22:48 被阅读0次

    其实,大多数程序员在工作中只使用C语言,或者C++语言其中的一种(以后一种居多),时间长了,便分不清C与C++在语法上的微妙区别。

    【某名企(2016年校招)试题】已知有函数定义,函数头:int max(int x,int y)   则下列的函数声明能够通过C语言编译的是:()

    A:int max(int x,int y);            B:max();        C:int  max();        D:无函数声明

    我猜你的答案是:A

    然而正确答案却是:ABCD

    A答案:毫无疑问是对的,直接把函数的脑袋割下来,打个结(即:后面加个分号),无论在C语言中还是在C++中都是不会错的。

    B答案:C语言的编译是不严格的,没有什么道理可讲,正确!

    C答案:C语言的编译是不严格的,没有什么道理可讲,正确!

    D答案:什么?无函数声明也对?!没错,C语言规定:如果所调用的函数是整形的,可以不补进行函数声明。正确!

    C++中对函数的声明是如何规定的呢?

    1)C++中则要求在函数调用之前必须对所调用的函数做函数原型声明,这不是建议性的,而是强制的!

    2)在C++中函数声明的参数表中一般包括 参数类型和参数名,也可以只包含参数类型而不包括参数名:

        int max(int x, int y);

        int max(int,int);

    这是因为C++编译器在编译时只检查参数类型,而不检查参数名。

    相关文章

      网友评论

        本文标题:你号称是C/C++程序员,但是你却不明白这个(一)

        本文链接:https://www.haomeiwen.com/subject/vbgeaxtx.html