C++笔记013:C++对C的扩展——C++中所有变量和函数都必须有类型
原创笔记,转载请注明出处!
点击【关注】,关注也是一种美德~
C++中所有的变量和函数都必须有类型;
C语言中的默认类型在C++中是不合法的!
在C语言里面可以写一些很奇怪的函数!并且可以运行成功!
f(i)函数的返回值是什么类型?参数又是什么类型?我们赋值10居然可以打印出来!
g()函数可以接受多少个参数?我们没有参数,但是函数调用时我们可以加上参数,并且运行成功!
f(i)
{
printf("i=%d\n",i);
}
g()
{
return 5;
}
int main()
{
f(10);
printf("g()=%d\n",g(1,2,3,4,5));
return 0;
}
运行结果:
i = 10
g() = 5
Press any key to continu
所以说这就是C语言不好的地方,这个不好的地方C++对其进行了摒弃!
同样的代码我们放到C++中来看一下!
#include<iostream>
using namespace std;
f(i)
{
printf("i=%d\n",i);
}
g()
{
return 5;
}
int main()
{
f(10);
printf("g()=%d\n",g(1,2,3,4,5));
system("pause");
return 0;
}
发现编译报错。
在C++中,不管是函数返回值类型还是变量类型,还是函数参数数量,我们都不能马虎,C++编译器都可以一一找出错误!下面的程序编译才可以通过!
#include<iostream>
using namespace std;
int f(int i)
{
printf("i=%d\n",i);
return 0;
}
int g()
{
return 5;
}
int main()
{
f(10);
printf("g()=%d\n",g());
system("pause");
return 0;
}
因此C++对变量和函数的类型检查更加严格!
小结:
在C语言中
int f() 表示返回值为int类型,接受任意参数的函数;
int f(void) 表示返回值为int类型的无参函数。
在C++中
int f()和int f(void)具有相同的意义,都表示返回值为int类型的无参函数。
C++更加强调类型,任意的程序元素都必须指明类型。
原创笔记,转载请注明出处!
更多精彩请关注微信公众号:依法编程