2020-07-02

学习C++的第一天,找个文档看看吧


C++学习的最基本知识

(1)进入C++

        注意点: 

       1、C++对大小写敏感,其中编译器也是对拼写敏感的;

       2、文件扩展名cpp是一种表示C++程序的常用方法;

       3、C++输入输出函数为cin和cout函数,但也可使用printf()和scanf()函数,但要包含常规C语言的stdio.h文件;

     4、#include预处理编译指令、int main()作为接口的函数头、using namespace编译指令、结束mian函数的return函数;

       5、C++中,语句结束后不能省略分号;

       6、如果编译器到达main()函数末尾时没有遇到返回函数,则认为main()函数以return 0结尾;

       7、代码#include <iostream>该编译指令导致预处理器将iostream文件的内容添加到程序中,这是典型的预处理器操作:在源代码被编译之前,替换或者添加文本;将iostream文件的内容添加到程序中这一预处理器操作涉及程序与外部世界之间的通信。iostream中io指的是输入和输出。C++的输入/输出方案涉及iostream文件中的多个定义。#include编译指令导致iostream文件的内容随着源代码文件的内容一起被发送给编译器。实际上,iostream文件的内容将取代程序中的代码行#include<iostream>。原始文件没有被修改,而是将源代码文件和iostream组合成一个复合文件,编译的下一个阶段将使用该文件。

   8、像iostream这样的文件叫做包含文件——由于它们被包含在其他文件中,也叫头文件——由于它们被包含在文件的起始处。C++编译器自带了很多头文件,每个头文件都支持一组特定的工具。C语言中头文件使用扩展名h,在C++中,对老式C的头文件保留了扩展名h,即C++也可以使用这种文件,但是C++风格的头文件是没有扩展名的,有些C头文件被转换时,会进行重命名,去掉扩展名h,并在文件名称前加上前缀c,如math.h->cmath。有时C头文件的C版本和C++版本相同,而有时新版本做了一些修改。对于纯粹的C++头文件来说,去掉h不只是形式上的改变,没有h的头文件也可以包含名称空间。

      9、如果使用iostream,而不是iostream.h,则应使用using namespace std的名称空间编译指令来使iostream中的定义对程序可用。名称空间支持是一项C++特性,旨在让你编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易,它有助于组织程序。一个潜在的问题是,可能使用两个已封装好的产品,而它们都包含一个名为wanda()函数,这样,使用wanda()函数时,编译器将不知道指的是哪个版本,名称空间让厂商能够将其产品封装在一个叫做名称空间的单元中,这样就可以使用名称空间来指出想使用哪个厂商的产品。因此,Microflop Industries可以将其定义放到一个名为Microflop的名称空间中,这样其wanda()函数的全称为Microflop::wanda();这样,程序就可以使用名称空间来区分不同的版本了。按这种方式,类、函数和变量便的是C++编译器的标准组件,它们现在都被放置在名称空间std中,这意味着在iostream中定义的用于输出的cout变量实际上是std::cout,因此可以省略编译指令using。

      10、对于cout<<"Come up";语句来说,从概念上看,输出是一个流,即从程序流出的一系列字符。cout对象表示这种流,其属性是在iostream文件中定义的。cout的对象属性包含一个插入运算符<<,它可以将其右侧的信息插入到流中。

     11、endl控制符,其重起一行的作用,和cout一样,endl也是在头文件中定义的,且位于名称空间std中。其中所谓的控制符是像endl一样对cout来说有特殊含义的特殊符号。C++中还提供了一种在输出中指示换行的旧方法,就是在“/n”,一般将其放在字符串的引号中,两者之间的区别在于,endl确保程序继续运行前刷新输出(将其立即显示在屏幕上),而使用“\n“不能提供这样的保证,这意味着在有些系统中,有时可能在你输入信息后才出现提示。

  12、源代码中的标记和空白。标记是指一行代码中不可分割的元素,空白则是空格、制表符和回车的统称。标记之间一般用空白来分开。

   13、声明不一定是定义,在C++中尽可能首次使用变量前声明它,这意味着将导致编译器为变量分配内存空间,而C中所有变量的声明通常都位于函数或过程的开始位置。

     14、对于类ostream和istream类,从技术上说,它们并没有被内置到C++语言中,而是语言标准指定的类,这些类的定义位于iostream文件中,没有被内置到编译器中。

     15、类描述了可对类对象执行的所有操作,要对特定对象执行这些允许的操作,需要给该对象发送一条信息。C++提供了两种发送消息的方法:一种是使用类方法;另一种方式是重新定义运算符,cin和cout采用的就是这种方式。

     16、例如x=sqrt(6.25),表达式sqrt(6.25)被称为函数调用,被调用的函数叫做被调用函数,包含函数调用的函数叫做调用函数。对于有返回值的函数来说,函数执行完毕后,语句中的函数调用部分将被替换为返回值。因此在使用函数之前,C++编译器必须知道函数的参数类型和返回值类型。如果缺少这些信息,编译器将不知道如何解释返回值。C++提供这种信息的方式就是使用函数原型语句。例如sqrt()的函数原型就像这样:double  sqrt(double);函数原型之于函数就像变量声明至于变量——指出涉及的类型。原型结尾的分号表明它是一条语句,这使得它是一个函数原型,而不是函数头。如果省略分号,编译器将这行代码解释为一个函数头,并要求接着提供定义该函数的函数体。但不要混淆函数原型和函数定义,原型只描述函数接口,它描述的是发送给函数的信息和返回的信息,而定义中包含了函数的代码。C和C++将库函数的这两项特性分开了,库函数中包含了函数的编译代码,而头文件只包含了原型.

17、函数变体:有多个参数,如 double pow(double,double);不接受任何参数,如int rand(void);没有返回值,如void bucks(double),这个函数是将数字以美元、美分的格式显示在屏幕上,由于这个函数把值发送给屏幕,而不是调用函数,因此不需要返回值,也不能将该函数调用放在赋值语句或其他表达式中。相反,应使用一条纯粹的函数调用语句:bucks(1234.56)。

18、对于main()函数来说,main函数是一个有返回值函数,所以需要使用关键字return来提供返回值,并结束函数,这就是为什么在main()函数结尾使用语句:return 0;的原因,但是这个返回值到底是返回到哪里了呢?事实上,可以将计算机操作系统看成是调用程序,因此main()函数的返回值并不是返回给程序的其他部分,而是返回给操作系统。

19、让程序访问名称空间std的方法有多种,下面是其中4种:(1)将using namespace std;放在函数定义之前,让文件中所有函数都能使用名称空间std中所有元素;(2)将using namespace std;放在特定的函数定义中,让该函数能够使用名称空间std中的所有元素;(3)在特定的函数中使用类似using std::cout;这样的编译指令,而不是using namesapce std;,让该函数能够使用指定的元素,如cout。(4)完全不使用编译指令using,而在需要使用名称空间std中的元素时,使用前缀std::,如下所示:std::cout<<"     "<<std::endl。

三、总结

1、有多种类型的C++语句,包含下述6种:声明语句、赋值语句、消息语句:将消息发送给对象,激发某种行动。、函数调用、函数原型、返回语句。

2、C++提供了两个用于处理输入和输出的预定义对象(cin和cout),它们是istream和ostream类的实例,这两个类是在iostream文件中定义的。为ostream类定义的插入运算符(<<)使得将数据插入到输出流成为可能;为istream类定义的抽取运算符(>>)能够从输入流中抽取信息。cin和cout都是智能对象,能够根据程序上下文自动将信息从一种形式转换为另一种形式。

3、C++可以使用大量的C库函数,要使用库函数,应当包含提供该函数原型的头文件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352