C++ primer 第一章

1.1

每个C++程序都包含一个或多个函数(function),其中一个必须命名为main,操作系统通过调用main来运行C++程序。
例:

int main()
{  
    return 0;
}

可知,一个函数的定义包含四部分(以示例为解释):返回类型int,函数名main,一个括号包围的形参列表(可以为空,这里就是空),以及函数体(就是花括号包含的部分)。
main函数的返回类型必须为int,也就是整数类型。
函数体:一个以左花括号开始,右花括号结束的语句块。
本例中,这个语句块中唯一的语句是return,它结束函数的执行,本例中,return还会向调用者返回一个值。当return语句包括一个值时,此返回值的类型必须与函数的返回类型相容。本例中,main的返回类型是int,而返回值为0,为int。

在大部分系统中,main的返回值被用来指示状态,返回值为0表示成功,非0的返回值的含义由系统定义,通常用来指出错误类型。

概念:类型
类型是程序设计最基本的概念之一,不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算。

1.2 输入和输出

C++语言没有定义任何输入输出,使用一个全面的标准库来提供IO机制。
iostream库:
包含istream和ostream,分别表示输入流和输出流。
标准库定义了4个IO对象:

  • cin (标准输入)
  • cout (标准输出)
  • cerr (标准错误)
  • clog (标准日志)

我们常用的是cin和cout。cerr常用来输出警告和错误消息,因此被称为标准错误,clog用来输出程序运行时的一般性信息。
例:

#include <iostream>
int main()
{
    std::cout << "Enter two numbers:" << std::endl;
    int v1 = 0, v2 = 0;
    std::cin >> v1 >> v2;
    std::cout << "The sum of " << v1 << " and " << v2 << " is:" << v1 + v2 << std::endl;
    return 0;
}

(运行代码时,一开始.c结尾出现cmath错误,改为.cpp可以成功运行,百度了说是namespace问题,暂时还不明白,以后解决。)

代码分析:(这一段复制自知乎马志峰)

1.include 告诉编译器我们想要使用iostream库,尖括号中的名字指出了一个头文件(这里是iostream),每个使用标准库设施的程序都必须包含相关的头文件;

2.函数体的第一行使用了输出运算符(<<),<<运算符接受两个运算对象,左侧是一个ostream对象,右侧是需要打印的值。执行结束后返回左侧的运算对象,即ostream。因此,std::cout <<”Enter two numbers:<< std::endl; 实际是分两次执行的,先执行std::cout<<”Enter two numbers:”, 返回左侧的ostream对象,即std::cout,然后执行std::cout << endl;

3.std::endl是一个操纵符,作用有两个:换行和将缓冲区中的内容刷新到屏幕。除了cerr外,cin、cout和clog都是将信息输出到缓冲区中,因此需要使用endl操纵符将缓冲区的内容输出到屏幕。
注释:endl被称为操控符,写入endl的效果是结束当前行,并将与设备关联的缓冲区中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入到输出流中,而不是仅停留在内存中等待写入流

4.与<<类似,输入运算符(>>)左侧是一个istream对象,右侧是用于接受用户输入的对象,返回值是左侧的istream对象;

5.在使用cin和cout时都使用了std::作限制,std是一个命名空间(namespace),::是作用域运算符,std::cin表示使用std命名空间中的cin。 std:: 指出名字cout和endl都是定义在名为std的命名空间中的。命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。

练习1.3出现“error LNK1169: 找到一个或多个多重定义的符号”问题,解决链接


2016.11.30 8点到11点15
乱七八糟的事做了很多,打印签字报账,第一天学习,要坚持。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值