hello world

首先看一段小程序

#include <iostream>
using namespace std;
int main()
{
    cout<<"hello world"<<'\n';
    cout<<"hello world"<<endl;
    return 0;
}


从上面的程序中理解几个知识点:

一.命名空间 std

    什么是命名空间呢? 为什么要引入命名空间呢? ,在c语言中,一般来说程序都比较小,所以刚开始的时候没发现什么问题,后来随着时代的变化,程序越来越大,同理写程序用到的变量会越来越多,但是问题出现了,变量多了难免出现重名的情况,这怎么办,只能人为的注意,但是这样的话起的名字难免与本意相差太多,这样c++就引入了命名空间的概念,

那什么是命名空间呢? 打个比方,小张,小马都有一部手机叫iphone,虽然都叫iphone,但是是有区别的,一个是小张的,一个是小马的,所以命名空间就是干这个用的,区别变量用的

看下面程序

#include <iostream>
namespace a{
   int i;
}
namespace b{
    int i;
}
in main()
{
    a::i=5;
    b::i=6;
    return 0;
}
其中定义了两个名字空间,里面都有整形变量 i; 你看,是不是很方便,如果没有a和b,就不能定义两个i了,当然命名空间里面也可以写类什么的

那么为什么要写using namespace std 呢? 如果上面看明白的话,就很容易理解了,c++中using是关键字,那么下面用到的cout是个对象,它是在命名空间std中声明的

而命名空间std是在库文件iostream中定义的,嗯..但要注意的是 ,cout的定义是在别的地方

二. '\n' 与 endl的区别

首先这段小程序输出结果是一样的,但是这两个还是有区别的,endl除了有换行的作用外,还有一个作用就是清空缓冲槽,关于缓冲槽参考我转发的文章

但是如果这样的话第一个hello world 为什么会输出呢,原因是对于cin 与cout的话系统会默认的清空缓冲槽,它们的区别可以参考下面的代码

#include <iostream>
using namespace std;
int main()
{
   ofsream outfile("test.txt");
    for(int i=0; i< 100; i++){
         outfile << 'a' << endl;
         //outfile << 'a' << '\n';
     }
    system("PAUSE");
    return 0;
}

这段程序中,向文件test.txt中输入a,运行程序之后,会在system这段代码中停掉(程序没有执行完),这时候观察一下test文件,发现a输入到文件中了,这是因为outfile将a输入到缓冲槽中,然后endl,这时候刷新一下,执行io,那么如果把这句话注释掉,把下面那段代码的注释开打,同样的步骤执行,发现a是没有写入文件中的,这就是它们的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值