[C&C++]学习C&C++入门篇:开始编写程序

create: 2018-12-08 | update:2018-12-08

摘要


理解C&C++这门语言最基本的用法,学习编写一个简单的程序。为了方便,当C与C++有差别时会加以特殊说明,其他的默认按照C++的语法。这一系列的文章都是基于Visual Studio这个IDE的,其他IDE与此不兼容的问题我会略讲。

一、初识C与C++

简单的说,C语言是一个结构化的语言,C的设计主要是通过一个流程来解决计算问题(即面向过程的编程方式)。C++是对C语言的一种补充,其添加了C所没有的面向对象的编程方式,但是,为了兼容性考虑,C++语言几乎保留了所有C语言的东西。

区别:一开始学习C与C++的区别并不大,主要是输入和输出方式的差别。C++使用cincout两个流对象,而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.hcstdio里面的,所以你需要导入这个类库,用#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>来导入,这是一个预处理命令。iostreamistreamostream组成,其中cinistream的一个对象,用于实现流输入coutostream的一个对象,用于实现流输出

注意:在Visual Studio中,你会发现不导入类库也够进行输入和输出,这是由于这个IDE帮你把一系列依赖文件引用好了,但是为了兼容性,请不要忘记在使用一个功能是检查一下相应的库是否导入。

若要查看预处理命令的相关知识,请点击这里。

若要查看基本类库对应的功能,请点击这里。

流输出

编写下列程序并运行,你就能看到从屏幕上输出hello world!按任意键继续…(注意,当你在Visual Studio运行时,不要忘记取消其中两行注释,否则你会看到屏幕一闪而过)。

#include<iostream>

//#include<cstdlib>

int main()
{
	std::cout << "hello world!";

	//system("pause");

	return 0;
}

这里cout是一个流对象,<<是流输出运算符,在学到后面会知道,<<是一个特殊的函数,<<的左边为流输出的对象的引用(此例为cout),右边为流输出对象兼容的值(可以是变量,可以是常量,也可以是表达式,在此例中,此为一个字符串常量)这个值可以简单地理解为可求值量

stdcout对象所在的命名空间,命名空间是为了解决对象冲突而设计的,基本上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++语言输入输出的详细内容,请点击这里