C++ primer plus_学习笔记

目录

前言

一、进入C++

二、C++语句

2.2.1声明语句和变量

2.编程练习



前言

适合具有一定C/C++基础的读者观看

本章对C++程序的基本结构做一个概述,并预览后面将介绍的主题,如函数和类


一、进入C++

#include <iostream>
int main()//function header
{
    using namespace std;
cout<<"Come up and C++ me some time ";
cout<<endl;
cout<<"You won't regret it!"<<endl;
return 0;
}

该示例包含以下元素

注释            —— 由前缀//标识

预处理指令 ——#include

函数头        ——int main()

编译指令     ——using namespace std

函数体        ——使用{}扩起

结束main()函数的return语句

使用cout工具的显示消息语句

 这里需要注意的是名称空间

1.名称空间

如果使用iostream,而不是iostream.h,则应该使用下面的名称空间编译指令来使iostream中的定义对程序可用

using namespace std;

这叫做using编译指令 

名称空间是一项C++特性,它在代码组合的时候让程序更容易组织。

名称空间使得编译器能够将内容封装在一个成为名称空间的单元中,这时使用名称空间就知道该使用哪个单元的函数。

比如在Microsoft和Piscine都含有一个叫做wanda()的函数,那么

Microsoft::wanda("go dancing?");

Piscine::wanda(" a fish named Desire");

就可以使用名称空间来调用不同的函数了。

2.源代码中的标记和空白 

一行代码中不可分割的元素叫做标记。通常,必须用空格、制表符或者回车将两个标记分开。

空格、制表符、回车(换行符)统称为空白。

二、C++语句

2.2.1声明语句和变量

使用声明语句来指出存储类型并提供位置标签。(变量类型,变量名称,有时候甚至变量地址等等)

int a;

 上述语句表明了一个变量名为a的变量的数据类型是int类型,在内存中占8位。

2.2.2赋值语句

可以连续使用赋值语句。

int a ;

int b;

int c;

a=b=c=10;

这样做是合法的,赋值将从右向左进行。 

2.3其他C++语句

#include <iostream>
int main()
{
    using namespace std;
    int carrots;
    cout<<"How many carrots do you have?"<<endl;
    cin>>carrots;
    cout<<"Here are two more.";
    carrots=carrot+2;
    cout<<"Now you have "<<carrots<<" carrots."<<endl;
return 0;
}

2.3.1使用cin

cin>>carrots;

这条语句的意思是,信息从cin流向carrots。<<运算符将字符串插入到到输出流中;输入时,cin使用>>运算符从输入流中抽取字符。

2.3.2使用cout

cout<<carror;

cout<<endl;

//

cout<<"Now you carrot"

        <<carrots

        <<" carrots"

        <<endl; 

2.3.3类简介

类是用户定义的一种数据类型。也就是说,需要描述的是他能够表示什么信息和可对数据执行哪些操作。

类对于对象就像类型对于变量。也就是说类定义描述的是数据格式及其用法,而对象就是根据数据格式规范创建的实体。

类描述了一种数据类型的全部属性(包括可使用他执行的操作),对象是根据这些描述创建的实体。

2.4函数

C++函数分为两种,有返回值和没有返回值的。在标准C++函数库中可以找到这两类函数的例子,也可以自己创建这两种类型的函数。

 2.4.1使用有返回值的函数

有返回值的函数将生成一个值,而这个值可赋给变量或者在其他表达式中使用。

例如标准C++定义库中有一个名位sqrt()的函数,他的功能是计算平方根。

x=sqrt(6.25);

sqrt(6.25)被成为函数调用,被调用的sqrt函数称为调用函数。6.25成为函数参数,将作为参数把值传递给函数sqrt。

C++程序应当为程序中使用的每个函数提供原型,例如sqrt()函数的原型

double sqrt(double) 

这里的第一个double是函数返回类型,第二个double是参数类型,说明了 sqrt()函数的返回类型是double类型的数据,而且传递的参数也是double类型。

使用库函数

C++库函数存储在库文件中,编译器在编译程序的时候,它必须在库文件中搜索您使用的函数。至于自动搜索哪些库文件,将因编译器而异。如果运行程序时得到一个消息

-》指出sqrt是一个没有定义的外部函数,则可能是由于编译器不能自动搜索数学库。如果在UNIX实现中遇到这样的问题,则需要在命令行添加lm选项

g++ sqrt.C -lm

 2.4.2函数变体

有些函数需要多项信息,这些函数使用多个参数,参数之间用逗号隔开。

double pow(double,double0

有些函数没有返回值,也不接受任何参数

void rand(void) 

关键字void表示rand函数没有返回类型(没有返回值),而且不接受参数 

由于它不返回值,所有不能将该函数调用放在赋值语句或者其他表达式中。

2.4.3用户定义的函数

我们可以使用函数库里的函数,也可以在需要的时候自己设计函数去完成自己所需要的功能。

无论是有返回值,有函数参数,或者没有函数参数,无返回值,简洁的完成我们的目标才是我们设计函数的最终要求。

2.4.4在多函数程序中使用using编译指令

using namespace std;

在程序示例中,每个主函数中都包含这行代码这是因为我们在函数中使用了cout。

总之,让程序能够访问名称空间std的方法有很多种

》》将using namespace std;放在函数定义之前,让文件中所有的函数都能使用名称空间std中所有的元素。

》》将using namespace std;放在特定的函数定义中,让该函数能够使用名称空间std中所有的元素。

》》在特定的函数中使用类似 using std::cout这样的指令,而不是using namespace std;

让该函数能使用指定的元素

》》完全不使用编译指令using,在需要使用名称空间std中的元素时,使用前缀std:: 

std::cout<<"xxxxxx"<<std::endl;

2.编程练习

#include <iostream>
int main()
{
	char name[20];
	char address[20];
	std::cout<<"Please input your name:"<<std::endl;
	std::cin>>name;
	std::cout<<"Please input your address:"<<std::endl;
	std::cin>>address;
	std::cout<<"Name:"<<name<<",Address:"<<address<<std::endl;
	return 0;
}

2.

#include <iostream>
int main()
{
	int d;
	std::cout<<"Please input an distance in long:"<<std::endl;
	std::cin>>d;
	std::cout<<"The distance in code is:"<<d*220<<std::endl;
	return 0;
}

3. 

#include <iostream>
using namespace std;
void mice();
void run();
int main()
{
	mice();
	mice();
	run();
	run();
	return 0;
} 
void mice()
{
	cout<<"Three blind mice"<<endl;
}
void run()
{
	cout<<"See how they run"<<endl;
}

 4.

#include <iostream>
using namespace std;
int main()
{
	int age;
	cout<<"Enter your age:"<<endl;
	cin>>age;
	cout<<"Your age have "<<age*12<<" months"<<endl;
	return 0;
	
}

5.

#include <iostream>
using namespace std;
double reflect(double a)
{
	return 1.8*a+32.0;
}
int main()
{
	double b;
	cout<<"Please enter a Celsius value: ";
	cin>>b;
	cout<<b<<" degree Celsuis is "<<reflect(b)<<" degree Fahrenheit."<<endl;
	return 0;
}

6.

#include <iostream>
using namespace std;
double reflect(double a)
{
	return 63240*a;
}
int main()
{
	double b;
	cout<<"Enter the number of light years : ";
	cin>>b;
	cout<<b<<" light years =  "<<reflect(b)<<" astronomicla units."<<endl;
	return 0;
}

 7.

#include <iostream>
void show(int, int);
using namespace std;
int main()
{
	int hour;
	int minute;
    cout << "Enter the number of hours: ";
    cin >> hour;
    cout << "Enter the number of minutes: ";
    cin >> minute;
    show(hour,minute);
    return 0;
}
 
void show(int hour, int minute)
{
    cout << "Time: " << hour << ":" << minute << endl;
}

猜你喜欢

转载自blog.csdn.net/LYY_WJL/article/details/128260025