程序清单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. Configure Always On Availability Group for SQL Server on RHEL——Red Hat Enterprise Linux上配置SQL Server Always On Availability Group

    下面简单介绍一下如何在Red Hat Enterprise Linux上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的 ...

  2. Selenium基础知识

    本人博客文章网址:https://www.peretang.com/basic-knowledge-of-selenium/ 什么是Selenium Selenium是一个自动化测试工具 是一组不同的 ...

  3. IIC协议学习笔记

    "移植"的重要性:并非所有的电路都得自己设计,到了一定阶段,"移植"也是一种学习能力.--CrazyBingo 转眼间期末又到了,最近开始了所谓的期末总预习,比 ...

  4. 音视频编解码问题:javaCV如何快速进行音频预处理和解复用编解码(基于javaCV-FFMPEG)

    前言: 前面我用了很多章实现了javaCV的基本操作,包括:音视频捕捉(摄像头视频捕捉和话筒音频捕捉),推流(本地音视频或者摄像头话筒混合推流到服务器),转流(rtsp->rtmp),收流(录制 ...

  5. Vue 非父子组件通信

    组件是Vue核心的一块内容,组件之间的通信也是很基本的开发需求.组件通信又包括父组件向子组件传数据,子组件向父组件传数据,非父子组件间的通信.前两种通信Vue的文档都说的很清楚,但是第三种文档上确只有 ...

  6. APUE-文件和目录(七)符号链接

    符号链接 符号链接的用途 符号链接是对一个文件的间接指针,它与前面介绍的硬连接不同,硬连接指向文件的i节点.引入符号链接是为了避开硬连接的一些限制: 硬链接通常要求链接和文件位于同一文件系统中. 只有 ...

  7. 在vue 中使用Stylus

    概述 什么是Stylus Stylus是一个CSS预处理器. 什么是CSS预处理器 关于CSS预处理器,推荐先行阅读这篇文章:为您详细比较三个 CSS 预处理器(框架):Sass.LESS 和 Sty ...

  8. 关于HTML学习整理(一)

    新人,自己整理,第一次发,以后慢慢整理,欢迎指点,那些链接怎么做的,希望有人告知一下,谢谢! HTML页面写法,标签成对出现,可嵌套使用 <html> <head> <t ...

  9. 用JS来实现于截取中英文混合字符串方法(转载)

    网站制作过程中,提示层文字超出,需要JS做字符串截取,但是呢,我们常常会烦恼文字中英文混合如何判断,因为我们知道在JS中 string.length这个值是不考虑中英文的,但是计算机对中英文的识别是  ...

  10. 简谈java 中的 继承和多态

    继承(extends) : 1:object 是所有类的父(基)类. 2:子类继承父类所有的内容除了(private修饰的和构造方法). 3:子类在手动创建构造方法时,必须调用父类构造方法. 4:在J ...