程序清单2. carrots.cpp
//carrots.cpp - - food processing program
//uses and displays a variable #include<iostream> int main()
{
using namespace std; int carrots; carrots = ;
cout << "I have ";
cout << carrots;
cout << " carrots" << endl;
carrots = carrots - ;
cout << "Crunch,crunch.Now I have " << carrots << " carrots." << endl;
cin.get();
return ;
}

1.声明语句和变量

计算机是一种精确的、有条理的机器,所以在信息存储中,必须指出信息的存储位置和所需的内存空间。

而在C++中采用声明语句来指出存储类型并提供位置标签

int carrots;

表明了需要的内存和该内存单元的名称·(程序需要足够的存储空间来存储一个整数,而编译器负责分配和标记内存的细节)

名称carrots来标识存储在该内存单元中的值。carrots被称为变量,因为它的值可以修改,C++中,所有变量都必须声明。

为什么?

在Basic中,在使用新名称时创建新的变量,那么如果错误的拼写了变量名,将在不知情的情况下创建一个新的变量。

CastleDark = 34

......

CastleDank = CastleDark + MoreGhosts

......

PRINT CastleDark

由于CastleDank拼写错误,没有修改CastleDark的值,但没有任何错误。

而在C++中,编译器回捕获这种错误。

这个程序中的声明叫做定义声明,意味着编译器为变量分配内存空间。

另一种叫做引用声明它命令计算机使用在其他地方定义的变量。(所以声明不一定是定义)

在C或Pascal中,所有变量的声明都位于函数或过程的开始位置,但C++没有这种限制,在首次使用前声明它,就不必在程序中到处寻找。

2.赋值语句

赋值语句将值赋给存储单元

C++和C不同的是可以连续使用赋值运算符,如

int steinway;

int baldwin;

int yamha;

yamha = baldwin = steinway = 88;

复制从右到左进行

3.cout的新花样

cout << carrots;

实际上,程序打印25.其实可以分成两个步骤来理解:

  (1)cout将carrots替换为其当前值25

  (2)把值转换为合适的输出字符

注意:整数25和字符串“25”有天壤之别

字符串存储的是书写该数字使用的字符,即2和5(程序在内部存储的是字符2和字符5的编码),打印字符串,其实打印字符即可

但25被存储为数值的话,计算机不是单独存储每个数字,而是将它存储为二进制数

所以在打印之前,cout将整数转成字符串(cout很聪明智能,可以识别类型的功能以及扩展)

C语言中打印用printf

printf("Printing a string: %s\n", "25");

printf("Printfing an integer: %d\n, 25);

printf很复杂,需要人为指定打印字符串还是整数,如果让printf()打印字符串,又错误的提供一个整数,因为printf不够精密,显示一堆乱码

如:printf("printing an string: %s\n", 25);则会报错

cout可扩展,更高级更好用

//getinfo.cpp - - input and output
#include <iostream> int main()
{
using namespace std;
int carrots;
cout << "How many carrots do you have?" << endl;
cin >> carrots;
cin.get();
cout << "Here are two more.";
carrots = carrots + ;
cout << "Now you have " << carrots << " carrots." << endl;
cin.get();
return ;
}

1.使用cin

在该程序清单中需要添加cin.get();才能在屏幕上看到输出。

cin >> carrots,cin使用>>运算符从输入流中抽取字符,信息从cin流向carrots。

cin和cout一样,也是个智能对象。将输入的字符转换为接收信号的变量能接受的形式。

在这个例子中,程序将carrots声明为一个整型变量,因此输入被转换为计算机用来存储整数的数字形式。

cout可将语句拼接。

2.类简介

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

类相当于某个群体的全部属性,对象相当于这个群体中某个人。

类是用户定义的类型,但用户并没有涉及ostream和istream。就像函数可以来自函数库,类也可以来自类库

从技术上说,它们没有被内置到C++中,而是语言标准制定的类位于iostream文件中,没被内置到编译器。

C++提供了两种发送消息方式:

一.使用类方法(函数调用)

二.重新定义运算符   如:cout<< "I am not a crook."

C++学习(二) 入门篇的更多相关文章

  1. PHP学习笔记 - 入门篇(5)

    PHP学习笔记 - 入门篇(5) 语言结构语句 顺序结构 eg: <?php $shoesPrice = 49; //鞋子单价 $shoesNum = 1; //鞋子数量 $shoesMoney ...

  2. PHP学习笔记--入门篇

    PHP学习笔记--入门篇 一.Echo语句 1.格式 echo是PHP中的输出语句,可以把字符串输出(字符串用双引号括起来) 如下代码 <?php echo "Hello world! ...

  3. netty深入学习之一: 入门篇

    netty深入学习之一: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java NI ...

  4. Java工程师学习指南 入门篇

    Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  5. PHP学习笔记 - 入门篇(4)

    PHP学习笔记 - 入门篇(4) 什么是运算符 PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. PHP中的算术运算符 算术运算符主要 ...

  6. PHP学习笔记 - 入门篇(3)

    PHP学习笔记 - 入门篇(3) 常量 什么是常量 什么是常量?常量可以理解为值不变的量(如圆周率):或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量 ...

  7. Elasticsearch学习记录(入门篇)

    Elasticsearch学习记录(入门篇) 1. Elasticsearch的请求与结果 请求结构 curl -X<VERB> '<PROTOCOL>://<HOST& ...

  8. PHP学习笔记 - 入门篇(2)

    PHP入门篇(2) 什么是变量 变量是用于存储值的容器,如下 $var = @"6666" 如何定义变量 定义变量就是像服务器的内存申请空间,用来存储数据,eg: <?php ...

  9. RabbitMq学习一入门篇(hello world)

    简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java,也是众多消息队列中表现不俗的一员,作用就是提高系统的并发 ...

  10. storm学习之入门篇(二)

    Strom的简单实现 Spout的实现 对文件的改变进行分开的监听,并监视目录下有无新日志文件添加. 在数据得到了字段的说明后,将其转换成tuple. 声明Spout和Bolt之间的分组,并决定tup ...

随机推荐

  1. 一不小心,陷入TCP的性能问题

    一.现象 在一次访问请求nginx中,通常只需要几毫秒的RT,但当请求数据达到某一个数值时,rt明显提高,甚至超过了300毫秒. 二.问题的原因 大家都知道,TCP为了提高带宽利用率和吞吐量,做了各种 ...

  2. Python教程(2.5)——控制台输入

    写Python程序时,你可能希望用户与程序有所交互.例如你可能希望用户输入一些信息,这样就可以让程序的扩展性提高. 这一节我们来谈一谈Python的控制台输入. 输入字符串 Python提供一个叫做i ...

  3. Java中设计模式之工厂模式-4

    一.工厂模式由来 1)还没有工厂时代:假如还没有工业革命,如果一个客户要一款宝马车,一般的做法是客户去创建一款宝马车,然后拿来用. 2)简单工厂模式:后来出现工业革命.用户不用去创建宝马车.因为客户有 ...

  4. angular自定义验证 ngModel的一些理解

    每次使用自定义校验都不记得具体详情,故而记录之 1.数据流向 初始化 -->$formatters -->modelValue-->用户操作-->viewValue--> ...

  5. java学习——平台的安装与部署

    Java 平台安装与部署 jre,jdk安装与部署 1)jre,jdk安装过程(略) 2)部署过程 新建(JAVA_HOME) 变量名:JAVA_HOME 变量值:E:\Program Files ( ...

  6. EJS模板引擎

    前面的话 nodejs的模板引擎有很多, EJS是比较简单和容易上手的.本文将详细介绍EJS 概述 EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本.可以说EJS是一个Java ...

  7. Sql Server 事物

    事物的定义: 数据库的事物是原子性的,原子性的概念是指把一些事情当做一个单元来看待. 从数据库的角度看,它是指全部执行或者全部不执行的一条或者多条语句的最小组合:为了理解事务的概念,需要能够定义非常明 ...

  8. [转] (CQRS)命令和查询责任分离架构模式(一) 之 什么是CQRS

    什么是CQRS? 这个问题网上可以找到很多资料,未接触过的童鞋请先查看Udi Dahan, Grey Young, Rinat Abdullin,园子里dax.net,以及Jdon社区上的相关文章. ...

  9. 微信小程序 - 自定义创建

    自定义创建与默认创建完全相同, 只是不要勾选quick start即可 淡定(不要看到报错就紧张, 一定要淡定) 看看它说了什么, no such file or directory(没有文件或目录) ...

  10. 使用requireJs的方法

    在你们对requireJs初步了解后,快来看看他们是怎么使用的吧. 在你下载完成require.js插件后,在页面里引入,在require.js 加载完之后,会查找页面上script标签的data-m ...