码迷,mamicode.com
首页 > 编程语言 > 详细

c++进阶之路01基础知识

时间:2015-04-24 19:33:45      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:c++

  1. 一个函数的定义包含四部分:返回类型,函数名,一个括号包围的形参列表(允许为空),以及函数体。

  2. c++没有定义任何输入输出(IO)语句,取而代之,包含了一个全面的标准库(SL)来提供IO机制。使用iostream库,它包含两个类istream和ostream,分别表示输入流和输出流。记住流想要表达的是,随着时间的推移,字符是顺序生成或消耗的。标准库定义了4个对象,cin,cout,cerr,clog。

  3. cout<<"Hello,world"<<"Welcome,come to C++ world"<<endl;cout对象输出"Hello,world"返回的是一个ostream对象,接着输出第二个字符串,还是返回一个ostream对象。endl的效果是结束当前行,并将于设备关联的缓冲区(Buffer)中的内容刷到输入流中,而不是停留在内存中等待写入流中。cin和cout差不多,就是后面不能加endl。cin输入使,要分开,空格和换行都可以。

  4. 标准库定义的所有名字都在命名空间std中。

  5. for(init;condition;expression),首先执行inti,再condition,如果满足,就执行for的循环体,然后执行epression,最后重新执行condition,循环下去。不满足就直接跳出for循环。

  6. 利用cin读取不定数量的数据。

    #include<iostream>

    int main()

    {

    int sum = 0; value = 0;   //c++内置类型要在使用前初始化,不然就是未定义的,不会默认     初始化,只有类类型例如string,vector会默认初始化。

    while(std::cin>> value)   //while循环就是检测cin输入流的状态

    {

        sum += value;

    }

    std::cout<<sum<<std::endl;

}

    当遇到文件结束符,或遇到一个无效输入(此例如果不是整数),返回的istream的对象会无效,循环条件就会变false,跳出循环。在windows中输入文件结束符的方法是Ctrl+Z,然后单击enter键。

技术分享


7.C++是一个静态数据类型语言,它的类型检查发生在编译时(不是运行时)。因此,编译器必须知道程序中每一个变量对应的数据类型。(记住是变量,不是形参,后面将会介绍模板)。

8.当我们赋值无符号类型一个超出范围的值时,结果是初始值对无符号类型总数取模后的余数。

  当我们赋值有符号类型一个超出范围的值时,结果是未定义的。(不要发生这种情况)。

  unsigned char c = -1;  //c = 255


  -1%256 = 255 ?(不用理会,每种语言的结果都不一样,可能规定不一样)

9.初始化不是赋值,初始化的含义是创建变量时赋值予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值代替。

10.当列表初始化用于内置类型的变量时,有个重要的特点:如果存在丢失信息的风险,编译器会报错。

double a = 3.1445;

int b{a}    //错误,丢失精度

int c(a)    //正确,丢失精度,但编译器不会报错

11.默认初始化问题。

当内置类型在函数外,默认为0,在函数内,不被初始化,访问将错误(编译器不会报错)。

类和其他的类型如vector和string,会被默认构造函数初始化。

12.C++语言支持分离式编译机制,该机制允许将程序分割多个文件,每个文件可被独立编译。声明和定义变量,声明是告诉程序它的名字和类型,而定义是申请存储空间,可能还会赋值。

extern int i;    //声明

int  j;          //定义

extern int k = 3;//定义,抵消了extern的作用

定义只能一次,可以多次声明

13.引用不能解绑,引用不是对象,所以没有引用的引用。只有对象才可以引用,引用必须初始化。

14.const限定符

const限定的常量仅仅在执行改变常量的操作时才会发挥作用。

15.引用的本质。

非常量的引用按照一般的规则来,但是常量的引用却不一样。

const int &a = 1200;          //会变成const int temp  = 1200    const int &a = temp       

const double b =1234.32432;

const int &c = b;

因为常量引用会在中间过程产生临时量,所以可以类型转换,可以直接引用字面值。引用常量还可以绑定非常量。

16.顶层const和底层const

顶层const表示指针本身是const,可以表示任何的类型

底层const表示指针所指的对象是const,只表示指针与引用有关

int i = 23;

int* const p1 = &i;                 //顶层const

const int ci = 43;                  //顶层const

const int *p2 = &ci;                //底层const

const int *const p3 = p2;           //左边的底层const,右边的顶层const

const int &r = ci;                  //底层const

底层const在拷贝的时候有限制。自己去实验。


本文出自 “郭俊的博客” 博客,转载请与作者联系!

c++进阶之路01基础知识

标签:c++

原文地址:http://10093949.blog.51cto.com/10083949/1638017

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!