C++学习(二)入门篇——C++语句
程序清单2.2 carrots.cpp
//carrots.cpp - - food processing program
//uses and displays a variable
#include<iostream>
int main()
{
using namespace std;
int carrots;
carrots = 25;
cout << "I have ";
cout << carrots;
cout << " carrots" << endl;
carrots = carrots - 1;
cout << "Crunch,crunch.Now I have " << carrots << " carrots." << endl;
cin.get();
return 0;
}
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 + 2;
cout << "Now you have " << carrots << " carrots." << endl;
cin.get();
return 0;
}
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."