一直想学习编程但一直都没下定决心,这可能就是我的博客码龄为何是3年的原因了吧。博主是目前看书学习编程的毕竟从0开始嘛,虽然有一点点Java基础(真的只是知道一些语法)。
我是边工作边学习的所以发的博客都是书本上的,入门选择了两本书籍,现在正在学习的是“C++Primer Plus 第六版”就下面图片这本。第二本书的名字忘了。。。。抱歉
这博客就一记录一个人学习的过程就如同标题一样,给自己提个醒儿吧。


C++基础

简介

C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。 C++是C语言的扩展

文章目录

  • C++基础
  • 简介
  • 1.作为接口的函数头
  • 2.C++预处理器和iostream文件
  • 3.名称空间
  • 4.C++源代码风格(编码规范)
  • 5.语句
  • 5.1声明语句和变量
  • 5.2赋值
  • 6.其他C++语句
  • 6.1使用cin
  • 6.2使用cout进行拼接
  • 6.3类简介
  • 7.函数的基本特征
  • 7.1使用有返回值的函数
  • 7.2 函数变体
  • 7.3 用户定义的函数
  • 7.4 自定义有返回值的函数
  • 7.5 在多个函数程序中使用using编译指令
  • 总结
  • 编程练习


预处理器编译指令:#include。
函数头:int main()。
函数头对函数与程序其他部分之间的接口进行总结
编译指令using namespace。
函数体,用 { 和 } 括起来。
函数体是指出函数应做什么的计算机指令。
使用C++的cout工具显示消息语句。
结束main函数的return语句。

1.作为接口的函数头

函数头描述了函数与调用它的函数之间的接口。位于函数名前面的叫返回类型,它描述的是从函数返回给调用它的函数的信息。函数名后面的括号中的部分叫做形参列表或参数列表;它描述的是从调用函数传递个给被调用函数的信息
通常,main()被启动代码调用,而启动代码是被编译器添加到程序中去的,是程序和操作系统之间的桥梁。事实上,该函数头描述的是main()和操作系统之间的接口。
如果编译器到达main()函数末尾时没有遇到返回语句,则认为main()函数默认以:return 0;
常规的独立程序都需要main()。例外,Windows编程中,可以编写一个动态链接库(DLL)模块,这是其他Windows程序可以使用的代码。由于DLL模块不是独立的程序,因此不需要main()。用于专用环境的程序—如机器人中控制芯片—可能不需要main()。有些编程环境提供一个框架程序,该程序调用一些非标准函数,如tmain()。在这种情况下,有一个隐藏的main(),它调用tmain()。

2.C++预处理器和iostream文件

使用c++的输入和输出工具,需提供:
#include//该编译指令导致预处理器将iostream文件的内容添加到程序中,在源代码被编译前替换或 添加文本
using namespace std;
可用其他代码代替第二行,如果编译器不接受这两行代码,则说明它没有遵守标准C++98

3.名称空间

using namespace std;

三种using编写方式
//第一种
#include<iostream>int main()
{using namespace std;cout << "Hello world!" << endl;cout << number << endl;
}
//第二种
#include<iostream>int main()
{std::cout << "Hello world!" << std::endl;std::cout << std::endl;
}

//第三种:只使所需的名称可用,通过使用using声明来实现,这样便可直接使用cin和cout,如果要使用到iostream的其他名称,就必须将它们分别加到using列表中。

#include<iostream>int main()
{using std::cout;using std::cin;using std::endl;//用双引号括起来的一系列字符叫做字符串,因为它是由若干那个字符组成的。<<符号表示该语句将把这个字符串发送//给cout。cout << "Hello world!" << endl;
}

控制符endl:
endl是一个特殊的C++符号,表示一个重要的概念:重起一行。在输出流中插入endl将导致屏幕光 标移至下一行开头。诸如endl对于cout有特殊含义的特殊号被称为控制符。和cout一样,endl 也是头文件iostream中定义的,且位于名称空间std中。

#include<iostream>int main()
{using std::cout;using std::cin;using std::endl;cout << "Hello world!";cout << "Wolcome to school!";cout << endl;cout << "future life...";
}

C++旧式换行符:\n(C语言换行符)。\n被视为一个字符名为换行符。

#include<iostream>int main()
{using std::cout;using std::cin;using std::endl;cout << "Hello world!\n";cout << "Wolcome to school!";
//输出一个空格下列两种写法是等量的,对大多数人而言C++中会选择输入endl更为方便。
//endl和\n的差别:endl确保程序运行前刷新输出(将其立即显示在屏幕上);而是用“\n”不能提供这样的保证,这意味在有些系统中,有时可能在您输入信息后才出现提示。cout << "\n";cout << endl;}

4.C++源代码风格(编码规范)

1.每一行代码独占一行。
2.每个函数都有一个开始花括号和一个结束花括号,这两个花括号独占一行。
3.函数中的语句都相对于花括号进行缩进。
4.与函数名称相关的圆括号周围没有空白。
前三条规则旨在确保代码清晰易读;第四条规则帮助区分函数和一些也使用圆括号的C++内置结构(如循环)。

5.语句

C++是一组函数,而每个函数又是一组语句。
如下:声明语句创建变量,赋值语句给该变量提供一个值。

#include<iostream>int main()
{using namespace std;int carrots;carrots = 27;cout << "I have ";cout << carrots;cout << " carrots. ";cout << endl;carrots = carrots - 1;cout << "Crunch, crunch. Now I have " << carrots << " carrots," << endl;}

5.1声明语句和变量

要将信息存储在计算机中,必须指出存储的位置和所需的内存空间。
声明变量尽可能的在首次使用变量前声明它。

5.2赋值

C++/C,可以连续使用赋值运算符。
cout在输出变量时,会将变量的类型转换为字符串再输出。
cout的优点:能够识别类型的功能说明。是可扩展的,也就是说可以重新定义<<运算符,使cout能够识别和显示所开发的新数据类型。

#include<iostream>int main()
{using namespace std;int carrots;int carrots1;int carrots2;carrots = carrots1 = carrots2 = 25;cout << carrots;
}

6.其他C++语句

#include<iostream>int main()
{using namespace std;int carrots;cout << "How many carrots do you have?" << endl;cin >> carrots;cout << "Here are two more. ";carrots = carrots - 2;cout << "Now you have " << carrots << " carrots. " << endl;
return 0;
}

6.1使用cin

cin:iostream文件将cin定义为表示这种流的对象。输出时,cout使用<<运算符将字符串插入到输出流中;输入时, cin使用>>运算符从输入流中抽取字符。
通常,需要在运算符右侧提供一个变量,以接收抽取的信息(符号<<和>>被选择用来指示信息流的方向)
cin >> carrots;

6.2使用cout进行拼接

//当代码行很长,限制输出的显示风格时,就可以使用这种技巧
//cout << "Now you have " << carrots << " carrots. " << endl;cout << "Now you have "<< carrots<< " carrots. "<< endl;

6.3类简介

类是C++面向对象编程的核心概念之一。
类是用户定义的一种数据类型。要定义类,需要描述它能够表示什么信息和可对数据执行那些操作。类对于对象就像类型对于变量。也就是说,类定义描述的是数据格式及其用法,而对象则是根据数据格式规范创建的实体。换句话说,类就是演员而对象就是指某个特定的演员。
C++对象对应于对象实例或实例变量。
注意:类描述了一种数据类型的全部属性(包括可以使用它执行的操作),对象是根据这些描述创建的实体。
类描述指定了可对类对象执行的所以操作。
C++提供了两种发生信息的方式:1.使用类方式。2.从新定义运算符,cin和cout采用的就是这个方式。
cout << "Here are two more. ";

7.函数的基本特征

c++函数分两种:有返回值的和没有返回值的。

7.1使用有返回值的函数

有返回值的函数将生成一个值,而这个值可以赋给一个变量或在其他表达式中使用。
例如:x = sqrt(6.25);
表达式sqrt(6.25)将调用sqrt()函数。表达式sqrt(6.25)称为:被调用函数,包含函数调用的函数叫做:调用函数。
圆括号中的值是发送给函数的信息,叫做传递给函数。以这种方式发送给函数的值叫做参数。函数sqrt()得到的结果为2.5,并将这个值发送给调用函数;发送回去的值叫做:函数的返回值。可以这么认为,函数执行完毕后,语句中的函数调用部分将被替换为返回值。因此这个例子将返回值赋值给x,简而言之参数是发送给函数的值,返回值是从函数中发送回去的值
注意:C++程序应为程序中使用的每个函数提供原型(该函数类型)。
提供原型有两种方法实现:1.在源文件中输入函数原型。
2.包含头文件cmath(老系统为math.h),其中定义了原型。
方法2为优选,因为头文件更可能是原型正确。对于C++库中的每个函数,都在一个或多个头文件中提供其原型。例如sqrt()函数的说明将指出,应使用cmath头文件(同样,可能必须使用老式的头文件math.h,它可用于C和C++程序中。)
原型和函数定义的区别:原型只描述函数接口。也就是说,它描述的是发送给函数的信息和返回的信息。而定义中包含了函数的代码,如计算平方根的代码。C和C++将这两个特性(原型和定义)分开了。库文件中包含了函数的编译代码,而头文件中则包含了原型。

#include<iostream>
#include<cmath>//sqrt的原型,或者老式的math.h头文件int main()
{double area;std::cout << "Enter the floor area, in square, of you home: ";std::cin >> area;double side;side = sqrt(area);std::cout << "That's the equivalent of a square ";std::cout << side;std::cout << " feet to the side.\n";std::cout << "How fascinating!\n";return 0;
}
#include<iostream>
#include<cmath>//sqrt的原型,或者老式的math.h头文件int main()
{using namespace std;double area;cout << "Enter the floor area, in square, of you home: ";cin >> area;double side;side = sqrt(area);cout << "That's the equivalent of a square " << side<< " feet to the side."<< "How fascinating!"<< endl;return 0;
}

注意:如果适应老式的编译器,则需要要老式的头文件#include<math.h>
C++函数库存储在库文件中。
C++允许在程序的任何地方声明新变量,可以在用使用变量时再创建变量。
C++允许在创建变量时对它进行赋值,这个过程叫做初始化。

7.2 函数变体

  1. 有多个参数的函数,参数之间用逗号隔开。
  2. 不接受任何参数(或是没有参数)的函数。
  3. 没有返回值的函数。
    在C++中只要时函数调用就必须包括圆括号,即使没有参数。

7.3 用户定义的函数

标准C库有140多个预定义的函数。如果其中的函数能满足要求,则应使用它们。每个C++程序都必须有一个main()函数,用户必须对他进行定义。如果要添加另一个用户定义的函数。则:和库函数一样,也可以通过函数名来调用用户定义的函数。对于库函数,在使用之前必须提供其原型,通常把原型放到main()定义之前。

#include<iostream>
void simon(int);//function prototype for simon().int main()
{using namespace std;simon(3); //call the simon() function./第一次调用函数simon()并赋值为3。cout << "Pick an interger: ";int count;cin >> count;simon(count);//第二次调用函数simon()并赋值为count。cout << "Done!" << endl;return 0;
}void simon(int n)
{using namespace std;cout << "Simon says touch your toes " << n << " times." << endl;
}

simon()函数头表明:该函数接受一个int类型的参数,但不返回任何值。
对于有返回值的函数,应使用关键字return来提供返回值,并结束函数。
int main()函数头返回一个int值,并要求返回整数0。这个值返回给了操作系统,可以将操作系统看作调用程序。很多操作系统都可以使用程序的返回值。例如UNIX外壳脚本和Windows命令行批处理文件都被设计成运行程序,并测试他们的返回值(通常叫做退出值)。通常的约定是,退出值为0意味着程序运行成功,为非0则意味着存在问题。因此,如果C++程序无法打开文件,可以将它设计为一个非0值。然后,便可以设计一个外壳脚本或批处理文件来运行该程序,如果该程序发出指示失败的消息,则采取其他措施。
main不是关键字,由于它不是语言的组成部分。然而,它是一个必不可少的函数名称。

7.4 自定义有返回值的函数

有返回值的函数格式:在函数头中指出函数类型,在函数体结尾处使用return。

#include<iostream>int stonetolb(int);//有返回值的自定义函数int main()
{using namespace std;int stone;cout << "Enter the weight in stone: ";cin >> stone;int pounds = stonetolb(stone);cout << stone << " stone = ";cout << pounds << " pounds" << endl;return 0;
}int stonetolb(int sts)
{return 14 * sts;
}

通常,在可以使用一个简单常量的地方,都可以使用一个返回值类型与该常量相同的函数。例如stonetolb()返回一个int值:

#include<iostream>
int stonetolb(int);int main()
{using namespace std;int aunt = stonetolb(20);int aunts = aunt + stonetolb(10);cout << "Ferdie weight " << stonetolb(16) << " pounds." << endl;cout << "Bob weight " << aunt << " Tom weight " << aunts << endl;
}int stonetolb(int sts)
{return 14 * sts;
}

函数原型描述了函数接口,即函数与程序的其他部分交互。参数列表指出了何种信息传递给函数,函数类型指出了返回值的类型。

7.5 在多个函数程序中使用using编译指令

如何在多个函数中使用一个using编译指令,即把编译指令放在函数的外面,且位于全部函数之前。

#include<iostream>
using namespace std;
void simon(int);int main()
{simon(3);cout << "Pick an integer: ";int count;cin >> count;simon(count);cout << "Done!" << endl;return 0;
}void simon(int n)
{cout << "Simon says touch your toes " << n << " time." << endl;
}

访问名称空间std的方法(其中4中):
1.将using namespace std;放在函数定义之前,让文件中所有的函数都能够使用名称空间std中的所有元素。
2.将using namespace std;放在特定的函数定义中,让该函数能够使用名称空间std中的所有元素。
3.在特定函数中使用类似using std::cout;这样的编译指令,而不是using namespace std;让该函数能够使用指定的元 素,如cout。
4.完全不适用using,而在需要使用名称空间std中的元素时,使用前缀std::,如:
std::cout << “Simon says touch your toes " << " time.” << std::endl;

总结

C++程序有一个或多个被称为函数的模块组成。程序从main()函数(全部小写)开始执行,因此该函数必不可少。函数有函数头和函数体组成。函数头指出函数的返回值(如果有的话)的类型和函数期望通过参数传递给它的信息的类型。函数体由一系列花括号({})中的C++语言组成。
有多种类型的C++语言,包括下述6种:

  • 声明语句:定义函数中使用的变量的名称和类型。

  • 赋值语句:使用赋值运算符( = )给变量赋值。

  • 消息语句:将信息发送给对象,激发某种行动。

  • 函数调用:执行函数。被调用的函数执行完毕后,程序返回到函数调用语句后面的语句。

  • 函数原型:声明函数的返回类型、函数接受的参数数量和类型。

  • 返回语句:将一个值从被调用的函数哪里回到调用函数中。

    类是用户定义的数据类型规范,它详细描述了如何表示信息以及可对数据执行的操作。对象是根据类规范创建的实体,就像简单变量是根据数据类型描述创建的实体一样。
    C++提供了两个用于处理输入和输出的预定义对象(cin和cout),它们是istream和ostream类的实例,这两个类实在iostream文件中定义的。为ostream类定义的插入运算符( << )使得将数据插入到输出流成为可能;为istream类定义的抽取运算符( >> )能够从输入流中抽取信息。cin和cout都是只能对象,能够根据程序上下文自动将信息从一种形式转换为另一种形式。
    C++可以使用大量的C库函数。要使用库函数,应当包含提供该函数原型的头文件。

编程练习

1.编写一个C++程序,显示姓名与地址。

#include<iostream>int main()
{using namespace std;cout << "My name is Tang." << endl;cout << "My hometown is mianyang." << endl;return 0;
}

2.编写一个C++程序,要求一个以long为单位的距离,然后将它转换为码(1long等一220码)。

#include<iostream>
int distance(int);
using namespace std;
int main()
{int longed;cout << "one long equal to 220 yard." << endl;cin >> longed;int yard = distance(longed);cout << longed << " long = " << yard << " yard" << endl;
}int distance(int yards)
{int yard = 220 * yards;return yard;
}

3.编写一个C++程序,使用3个用户定义函数(包含main()),并生成下列输出。
Three bline mice.
Three bline mice.
See how they run
See how they run
下列程序不太准确后续修改。

#include<iostream>
int mice(int);
int run(int);
using namespace std;int main()
{int mice;int run;cin >> mice;cout << mice << "Three bline mice." << endl;cout << mice << "Three bline mice." << endl;cin >> run;cout << run << "See how they run" << endl;cout << run << "See how they run" << endl;return 0;
}
int mice(int mi)
{return mi;
}
int run(int ru)
{return ru;
}

输出如下:
1Three bline mice.
1Three bline mice.
0See how they run
0See how they run
4.编写一个C++程序,用户输入其年龄,然后显示该年龄包含多少月。

#include<iostream>
int ages(int);int main()
{using namespace std;int age;cin >> age;int month = ages(age);cout << "Enter your age: " << month;
}
int ages(int age)
{int month = 12 * age;return month;
}

5.编写一个C++程序,其中main()调用一个用户定义函数(以摄氏温度值为参数,并返回相应的华氏温度值)。
华氏度 = 1.8 * 摄氏度 + 32.0

#include<iostream>int temperature(double);int main()
{using namespace std;double dc;cout << "Plaese enter a Celsius value: ";cin >> dc;double fahrenheit = temperature(dc);cout << dc << " degrees Celsius is " << fahrenheit << " degrees Fahrenheit.";
}int temperature(double fh)
{double fahrenheit = 1.8 * fh + 32.0;return fahrenheit;
}

6.编写一个C++程序,main()调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。

#include<iostream>
int lightyear(double);
using namespace std;int main()
{int lyear;cout << "Enter the number of light year: ";cin >> lyear;double AU = lightyear(lyear);cout << lyear << " light year = " << AU << " astronomical units.";
}int lightyear(double astr)
{return 63240 * astr;
}

7.编写一个C++程序,要求用户输入小时数和分钟数。在main()函数中,将这两个值传递给一个void函数。

#include<iostream>
void times(int, int);
using namespace std;int main()
{int    hour;cout << "Enter the number of hours: ";cin >> hour;int minutes;cout << "Enter the number of minutes: ";cin >> minutes;times(hour, minutes);}void times(int hours, int minutes)
{cout << "Time: " << hours << ":" << minutes;
}

【从0开始自学C/C++并在2023年10月之前找到一份工作之C++基础】相关推荐

  1. 自学stm32,需要会到什么程度才能找到一份工作?

    说到自学,小有体会,自学的过程焦虑而痛苦,这一切,还是来源于对未来的不确定性. 今天通过个人经历和经验,希望能为你揭开迷雾,找到前进的方向. 回想我曾经自学单片机的时候,当时还很年轻,思维也还没现在这 ...

  2. 0基础学python做什么工作好-零基础自学Python多久可以找工作?

    零基础自学Python多久可以找工作?零基础自学3个月很难找到工作.如果全职学习Python的话,学习6个的时间,不一定能达到找到工作的水平,掌握项目经验还需要更久,达到企业需要的岗位要求还需要多练习 ...

  3. 自学转行前端找到第一份前端工作,做得很吃力,被劝退怎么办?

    此文是转载的文章,点评下:自学前端应该没啥问题,主要是文中提到的兄弟手很生,完成项目进度,连简单的业务都很难完成,这样必须面对被劝退的结果.技术要是学扎实了,则可能就是个宝了. 转载文章正文如下: 身 ...

  4. 自学Java多久才能找到一份15K的工作?干货都说了,能不能就业看你自己了!

    如果有一天我醒来时,发现自己的几年Java开发经验被抹掉,重新回到了一个小白的状态.我想要重新自学Java,然后找到一份自己满意的Java工作,我想大概需要7个月的时间,如果顺利的话,5个月可能就够了 ...

  5. python多久能找到工作_零基础自学Python多久可以找工作?

    零基础自学Python多久可以找工作?零基础自学3个月很难找到工作.如果全职学习Python的话,学习6个的时间,不一定能达到找到工作的水平,掌握项目经验还需要更久,达到企业需要的岗位要求还需要多练习 ...

  6. 自学python可以找到好的工作吗-27岁0基础自学Python,多久可以找到工作?

    原标题:27岁0基础自学Python,多久可以找到工作? 27岁零基础努力自学Python,多久或什么程度可以找到工作? 背景: 毕业近5年,至今仍无任何表面成绩,一开始做期货投机,后经营个体店(失败 ...

  7. 计算机应用2010历年真题,全国2010年0月自学考试00051《管理系统中计算机应用》历年真题.doc...

    全国2010年0月自学考试00051<管理系统中计算机应用>历年真题 全国2010年10月高等教育自学考试 管理系统中计算机应用试题 课程代码:00051 一.单项选择题(本大题共30小题 ...

  8. python自学多久可以找到工作-自学Python的高效方法,学Python多久能找到工作?

    原标题:自学Python的高效方法,学Python多久能找到工作? 相信有了解的人都知道,Python目前是首选的AI语言,在数据科学和AI中占据主导地位,而且随着互联网的发展,Python的应用越来 ...

  9. python要学多久可以找到工作-自学Python的高效方法,学Python多久能找到工作?

    原标题:自学Python的高效方法,学Python多久能找到工作? 相信有了解的人都知道,Python目前是首选的AI语言,在数据科学和AI中占据主导地位,而且随着互联网的发展,Python的应用越来 ...

最新文章

  1. 修改数据无法提交_学习篇管家婆物联通功能讲解--|修改客户
  2. C#教程3:基本语言结构
  3. java jdbc in list_javaweb_JDBC
  4. 64位linux安装mysql数据库吗_CentOS7 64位安装mysql教程
  5. oracle数据库扩展目录,Oracle 扩充磁盘空间
  6. Redis持久化-深入理解AOF,RDB
  7. poj 1330(LCA)
  8. [转载] Java为什么不允许覆盖静态方法?
  9. 实现视图示例_AngularJS控制器,范围和视图教程示例
  10. C++ 结构体字节对齐
  11. linux版qq怎么传文件,QQ for linux终于能在线传送文件了~
  12. 【吹爆】2022金三银四高频面试题最强合集
  13. 网页设计如何排成一列_HTML页面布局怎么设计(图文)
  14. Java自定义模板设计
  15. 僵木蠕病毒快速处置建议(零成本)
  16. 网格交易法在交易中的应用
  17. WPF 触发器Triggers
  18. 为杰克·韦尔奇点赞(我已离开通用)
  19. ks8851网卡驱动在omap4460上的移植,发现开发板能发送数据,但是接受不到数据
  20. 计算机培训计划方案结尾怎么写,培训计划表格式

热门文章

  1. 冯大辉Twitter每日推荐一位推友计划推友列表
  2. HC32L072 OPA 性能测试
  3. 基于C#的电脑录屏和录像(工程源码)
  4. Docker进阶(3)docker容器编排-docker compose、swarm、service
  5. 达梦数据库配置SSL认证加密
  6. 干了这碗鸡汤!“机器人版 Linux”ROS崛起背后的隐秘故事大揭秘
  7. 针对X5新内核Blink以及google chrome主要字体主动放大问题
  8. 磷酸除杂回用去除铁、铝、氟
  9. 实现 element ui 走马灯图片插入与自适应大小
  10. python from __future__ import