学习C++的第二天

菜鸡学习C++第二天

本菜鸡写博客的主要目的是加深印象,部分地方就会按照自己能够理解的方式进行描述,多多见谅。

1、C++的语句

先Po上一段代码:

#include<iostream.h>
int main()
{
	int age;
	age = 20;
	cout<<"Now,I'm ";
	cout<<age;
	cout<<" years old.";
	cout<<endl;
	age = age + 1;
	cout<<"Next year, l am "<<age<<" years old."<<endl;
	cin.get();
	return 0;
}

运行结果如下所示

Now,I'm 20 years old.
Next year, l am 21 years old.
声明语句

将信息储存在计算机中,需要指出信息的存储位置和所需的内存空间。
在C++中,使用声明语句来指出存储类型并提供位置标签。如上例中的
int age;表示程序需要足够的存储空间来存储一个整数,并且给存储单元指定名称,如上例,用age来标识存储在该单元中的数据,age被称为变量,因为他的值可以修改。C++中,所有的变量都必须被声明。

赋值语句

赋值语句就不做过多阐述,和高中所学习到的伪代码差不多,只需要遵循语言要求就行,赋值是从右往左进行,如上例中的

age = 20;
age = age+1;

都被称作赋值语句。
接下来讨论一下字符串 ‘20’ 和整数 20 的天壤之别:
计算机储存字符串 ‘20’ 是存储书写该字符串所使用的字符,即‘ 2 ’ 和 ‘0’
程序在内部存储字符 2 和字符 0 的编码。
而计算机存储整数,是将20转换成二进制数进行存储,而不是单独存储每一个数字。

更多语句

下面我将调整一下上面的程序,使程序运行时能输入一个值,代码如下:

#include<iostream.h>
int main()
{
	int age;
	cout<<"what's your age?"<<endl;
	cin>>age;
	cout<<"Now,I'm ";
	cout<<age;
	cout<<" years old.";
	cout<<endl;
	age = age + 1;
	cout<<"Next year, l am "<<age<<" years old."<<endl;
	return 0;
}

运行结果如下:

what's your age?
20
Now,I'm 20 years old.
Next year, l am 21 years old.

这两个程序区别在于,第二个使用cin来读取键盘输入。

使用cin

上面的语句表明,从键盘输入的值20最终赋值给age变量,下面就是执行这项功能的语句:

cin>>age;

可以看出,信息从cin流向age。
这里先不做过多阐述。

类方面的简介

类是用户定义的一种数据类型。要定义类,需要描述他能够表示什么信息和对数据执行哪些操作。
类之于对象就像类型之于变量。
类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创造的实体。
类在后面会使用实例继续补充介绍。

2、函数

函数用于创建C++程序的模块,对C++的OOP1定义至关重要,因此必须熟悉它,现在讨论函数的基本特征。
C++函数分为两种:有返回值的和没有返回值的,下面先看一个有返回值的函数。

使用有返回值的函数
x = sqrt(6.25);

表达式sqrt(6.25) 将调用sqrt() 函数,圆括号中的值6.25是发送给函数的信息,被称为传递给函数。以这种方式发送给函数的值叫做参数。函数sqrt() 得到的结果为2.5,并将这个值发送给调用函数;发送回去的值叫做返回值(return value)。可以这么认为,语句中的函数调用部分被替换成了返回值。因此这个例子将返回值赋给 x 。简单地说,参数是发送给函数的信息,返回值是从函数中发送回去的值。
下面PO上一段完整的代码以供理解:

#include <iostream.h>
#include <cmath>
int main()
{
	double area;
	cout<<"Enter the floor area,in square feet ,of your home: ";
	cin>>area;
	double side;
	side = sqrt(area);
	cout<<"That's the equivalent of a square "<<side
		<<" feat to the side."<<endl;
	cout<<"How fascinating!"<<endl;
	return 0;
}

运行结果如下所示:

Enter the floor area,in square feet ,of your home: 1600
That's the equivalent of a square 40 feat to the side.
How fascinating!

下面将解释一下代码中 double 含义:
double 也是一个数字类型,指的是可能带有小数的数字,即实数。
声明 double 与 声明 int 变量使用的方法相同。
double 类型覆盖的范围比 int 类型大得多。

C++可以在程序任何地方声明新变量,可以在使用时再声明。C++还允许如下操作:

double side = sqrt(area);
函数变体

有些函数需要多个参数,这些参数使用逗号分开,如数学函数pow(),pow()函数接受两个参数,用来计算x的n次方,例如计算5的8次方:

answer = pow(5,8);

也有些函数不接受任何参数,例如stdlib.h库中的rand()函数,作用是随机生成一个整数并返回。代码如下:

answer = rand(void)

也可以将void省略,写成answer = rand(),括号为空,C++将其解释为不接受任何参数的隐式声明。

函数原型

函数原型之于函数就像变量声明之于变量,就是指出涉及的类型,例如sqrt()函数的原型就为这样:

double sqrt(double);

第一个double 意味着返回double 类型的值,第二个double 意味着需要接受一个double 类型的参数。特别指出,语句中的分号不可以缺少,缺少分号,C++会将其视作函数头,加上分号证明它是一条语句,使得它作为一个原型。
使用函数时,必须定义函数原型,通常有两种方法:
1、在源文件中定义函数原型。
2、头文件中定义函数原型。
如果使用头文件中的函数可以避免自己定义函数原型,而用户自己定义的函数就需要特别定义函数原型。

用户定义的函数

用户经常需要自己定义函数,前面已经使用过好多用户自己定义的函数,它们都叫做main()函数,C++中必须有main()函数,先PO一段代码然后加以介绍:

// 此代码源于C++ Primer Plus
#include<iostream.h>
void simon(double)
int main()
{
	simon(3);
	cout<<"Pick an integer: ";
	int count;
	cin>>count;
	simon(count);
	cout<<"Done!"<<endl;
	return 0;
}
void simon(int n)
{
	cout<<"Simonn says touch your toes "<<n<<" times."<<endl;
}

代码运行结果如下:

Simonn says touch your toes 3 times.
Pick an integer: 20
Simonn says touch your toes 20 times.
Done!
函数格式

函数的格式统一为如下定义:

type functionname(argumentlist)
{
	statement
}

这里提醒,C++不允许将函数定义嵌套在另一个函数定义内。每个函数定义都是独立的,所以函数的创建都是平等的。

函数头

上例中的函数头如下:

void simon(int n);

开头的void表示函数没有返回值,因此在main()函数中调用simon()不会生成可以赋值给变量的数字。
因此,此函数的调用方式如下:

simon(3);

而不能这么使用它:

answer = simon(3);

括号中的int n 表明,使用simon() 时,应提供一个int 参数。n 是一个新的变量,函数调用是值将传递给它。因此上例的函数调用将3 传递给函数头中定义的变量n。因此在cout语句中是可以使用n的。
关于main() 函数的函数头:
开头的int 表明,main() 返回一个整数值;空括号表明main()不接受参数。对于有返回值的函数,应使用关键字return 来提供返回值,并结束函数。这就是为什么要在main()函数最后使用return 0;的原因
为什么在main()函数程序最后返回0呢?
因为main()函数的返回值并不会返回给程序的其他部分,而是返回给操作系统,通常的约定是,返回值为0 意味着程序运行成功,非零意味着存在问题。
尽量避免将关键字最为变量名的情况
下面PO一段有返回值的函数

#include<iostream.h>
int stonetolb(int);
int main()
{
	int stone;
	cout<<"Enter the weight in stone: ";
	cin>>stone;
	int pounds = stonetolb(stone);
	cout<<stone<<" stones= "<<pounds<<" pounds"<<endl;
	return 0;
}
int stonetolb(int sts)
{
	return 14 * sts;
}
	

代码运行结果如下:

Enter the weight in stone: 5
5 stones = 70 pounds

在main()函数中,程序使用cin来给变量stone提供一个值,然后将这个值作为参数提供给stonetolb()函数,在该函数中,这个值被赋给变量sts。然后,函数用关键字return 将 14*sts 返回给main() 。


  1. 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值