摘要
理解C&C++这门语言最基本的用法,学习编写一个简单的程序。为了方便,当C与C++有差别时会加以特殊说明,其他的默认按照C++的语法。这一系列的文章都是基于Visual Studio这个IDE的,其他IDE与此不兼容的问题我会略讲。
一、初识C与C++
简单的说,C语言是一个结构化的语言,C的设计主要是通过一个流程来解决计算问题(即面向过程的编程方式)。C++是对C语言的一种补充,其添加了C所没有的面向对象的编程方式,但是,为了兼容性考虑,C++语言几乎保留了所有C语言的东西。
区别:一开始学习C与C++的区别并不大,主要是输入和输出方式的差别。C++使用cin
与cout
两个流对象,而C则使用printf()
和scanf()
两个函数来进行输入输出。
二、第一个C++程序
每一个C++程序都包括一个或更多的函数,其中有一个函数必须命名为main
。当程序启动时,操作系统首先会调用main
函数,这个函数我们把它称作入口函数。
若要查看更多的
main
函数的格式,请点击这里
下面是最简单的一个C++程序:
int main()
{
return 0;
}
函数定义: 函数定义必须包括返回类型(如果函数不需要返回,则指定返回类型为void
),函数名与参数列表,参数列表需要有()
括起来,以表示它是一个函数。这个函数需要返回int类型,这是一种由语言本身定义的内置类型,同时你需要在最后返回这个类型的一个值,否则这个程序编译就无法通过。
main的返回值: 在这个例子中,一般都返回0,来表示这段程序没有出错,其他非零的返回值的意义由操作系统本身来决定,一般来说,非零值表示这段程序出错了。
注意:很奇怪的是,在Visual Studio中,如果
main
函数不写返回值它并不会报错,这是编译器帮你补了返回语句,当然,为了养成一个好习惯,请记住有返回值的语句需要写return语句。
三、简要认识Input/Output
一般来说,C与C++版本的输入和输出有不同的语法,但是两种语法一般来说都是可以相互替代的。C与C++语言都没有提供标准输入输出的方式,其实现是在后期的规范中实现的,所以,不要认为输入输出是一句话的事情,前人帮你做了很多东西。
若要查看Input/Output的相关知识,请点击这里。
C语言版本
首先,很多基本操作都是需要借助标准库来实现的,所以当你使用一个功能是,请不要忘记导入类库。
当你需要使用C语言输入输出时,请添加下列语句:
#include<stdio.h>
//#include<cstdio>
因为标准输入输出是放在stdio.h
或cstdio
里面的,所以你需要导入这个类库,用#include<libname>
来导入,这是一个预处理命令,
注意:在Visual Studio中,你会发现不导入类库也够进行输入和输出,这是由于这个IDE帮你把一系列依赖文件引用好了,但是为了兼容性,请不要忘记在使用一个功能是检查一下相应的库是否导入。
若要查看预处理命令的相关知识,请点击这里。
若要查看基本类库对应的功能,请点击这里。
输出
编写下列程序并运行,你就能看到从屏幕上输出hello world!按任意键继续…(注意,当你在Visual Studio运行时,不要忘记取消其中两行注释,否则你会看到屏幕一闪而过)。
#include<stdio.h>
//#include<stdlib.h>
int main()
{
//printf("hello world!");
printf_s("hello world!");
//system("pause");
return 0;
}
注意,在Visual Studio这个IDE中,scanf()函数已被删除(当然printf()还能用),所以,请用printf_s()和scanf_s()代替不安全的版本。
printf_s()
是位于类库stdio.h
下的一个函数,它可以在屏幕上打出一段文本。当然,你也可以使用格式控制字符串来输出(后面讲)。
输入
编写下列程序并运行,在屏幕中输入一个数字(小一点),并按回车,你会看到屏幕上会打出你输入的数字。(和上面一样,在Visual Studio中请取消注释其中两句话)
#include<stdio.h>
//#include<stdlib.h>
int main()
{
int a;
//scanf("%d",&a);
scanf_s("%d",&a);
printf_s("%d\n",a);
//system("pause");
return 0;
}
scanf_s()
是位于类库stdio.h
下的一个函数,其用于从屏幕中输入东西,其参数列表为第一个是格式控制字符串,其后是可变参数(这个东西我自己也看不懂,不过不需要明白,只需要它可以传任何个数的参数就可以了),可变参数中的每一个都应该指定为变量的地址,学了函数与指针后你自然能明白它为什么要这么做了,在这里,你只需要记住它的用法。
若要详细了解C语言输入输出的详细内容,请点击这里。
C++语言版本
首先,很多基本操作都是需要借助标准库来实现的,所以当你使用一个功能是,请不要忘记导入类库。
当你需要使用C++语言输入输出时,请添加下列语句:
#include<iostream>
因为标准输入输出是放在iostream
里面的,所以你需要导入这个类库,用#include<libname>
来导入,这是一个预处理命令。iostream
由istream
和ostream
组成,其中cin
为istream
的一个对象,用于实现流输入,cout
为ostream
的一个对象,用于实现流输出。
注意:在Visual Studio中,你会发现不导入类库也够进行输入和输出,这是由于这个IDE帮你把一系列依赖文件引用好了,但是为了兼容性,请不要忘记在使用一个功能是检查一下相应的库是否导入。
若要查看预处理命令的相关知识,请点击这里。
若要查看基本类库对应的功能,请点击这里。
流输出
编写下列程序并运行,你就能看到从屏幕上输出hello world!按任意键继续…(注意,当你在Visual Studio运行时,不要忘记取消其中两行注释,否则你会看到屏幕一闪而过)。
#include<iostream>
//#include<cstdlib>
int main()
{
std::cout << "hello world!";
//system("pause");
return 0;
}
这里cout
是一个流对象,<<
是流输出运算符,在学到后面会知道,<<
是一个特殊的函数,<<
的左边为流输出的对象的引用(此例为cout
),右边为流输出对象兼容的值(可以是变量,可以是常量,也可以是表达式,在此例中,此为一个字符串常量)这个值可以简单地理解为可求值量。
std
为cout
对象所在的命名空间,命名空间是为了解决对象冲突而设计的,基本上C++的东西都在标准库里面。当然你可以用using
语句使用命名空间,这样就不用写std::
了,示例如下。
#include<iostream>
//#include<cstdlib>
using namespace std;
int main()
{
cout << "hello world!";
//system("pause");
return 0;
}
流输入
编写下列程序并运行,在屏幕中输入一个数字(小一点),并按回车,你会看到屏幕上会打出你输入的数字。(和上面一样,在Visual Studio中请取消注释其中两句话)
#include<iostream>
//#include<cstdlib>
int main()
{
int a;
std::cin >> a;
std::cout << a << std::endl;
//system("pause");
return 0;
}
cin
是一个流输入对象,>>
是流输入运算符,>>
的左边为一个流输入对象,右边为可变的值(可以是变量,指针,但不能是常量与表达式),特殊情况除外。
当然,你可以用using
语句使用命名空间,那么你就可以少打几个字了。修改后的程序如下:
#include<iostream>
//#include<cstdlib>
using namespace std;
int main()
{
int a;
cin >> a;
cout << a << endl;
//system("pause");
return 0;
}
若要详细了解C++语言输入输出的详细内容,请点击这里。