无中生有之C++学习day1

太原理工大学机器人团队20天学习打卡day19


我们又见面啦,从今天开始我将进入C++的学习,为什么选择C++呢,主要是团队的要求,以及个人对编程的爱好。不同于之前的java学习,这次我主要的参考资料不是视频,而是C++ Primer Pluls,这次将通过参考书学习,任务还是挺艰巨的。用的IDE是codeblocks
今天主要学习C++的基础知识和语法


1、进入C++

①第一个c++程序

myfirst.cpp

#include 
int main()
{
    using namespace std;
    cout <<"Come up and C++ me some time.";
    cout <

下面详细介绍上述程序中的元素

②main()函数

语法格式

int main()//函数头
{
	语句
	return 0;//结束函数
}
  • main是函数名,花括号中的称为函数体

  • main()函数中最后一条语句叫做返回语句,它结束该函数

  • 什么是语句

    • 语句是要执行的操作,是以分号结尾的c++表达式
    • c++在语句的末尾使用终止符,而不是分隔符,终止符是一个分号,它是语句结束的标记,是语句的组成部分,而不是语句间的标记
  • 作为接口的函数头

    • 就目前而言,只要记住:C++句法要求main()函数的定义以函数头int main()开始。

      【函数头的句法将在以后介绍】

    • 也可以使用变体:int main(void)

      在括号中使用关键字void明确指出,函数不接受任何参数。在C++【不是C】中让括号空着与在括号中使用void等效【具体的以后介绍】

    • 另外:如果编译器到达main()函数末尾时没有遇到返回语句,则认为main()函数以

      return 0;结尾【只适用于main()函数,不适用其他函数】

  • 为什么main()不能使用其他名称

    • 必须这样做,在运行c++程序时,通常从main()函数开始执行。因此,如果没有main(),程序将不完整,编译器会指出未定义main()函数

③注释

  • c++注释以 / /打头,到行尾结束。注释可以位于单独一行上,也可以与代码在同一行
  • c++也可以识别c风格的注释:/*注释 */这种注释可以跨越多行

④预处理器和iostream文件

如果需要使用c++输入或输出工具,请提供这两行代码

#include < iostream>

using namespace std;

  • C++和C一样,也使用一个预处理器,该程序在进行主编译之前对源文件进行处理,这种编译指令的名称以#开头,不必执行任何特殊操作来调用该预处理器,他会在编译程序时自动执行
  • 如:上述程序使用了#include编译指令
    • 该编译指令是一种典型的预处理器操作:在源代码被编译之前,替换或添加文本
  • iostream中的io是指输入和输出c++的输入/输出涉及iostream文件中的多个定义。实际上,iosream文件的内容将会取代程序中的代码行#include < iostream>,原始文件并没有被修改,只是将他们组合成复合文件

⑤头文件名

iostream这样的文件叫做包含文件,也叫做头文件,在c语言中,头文件使用扩展名h

例如:math.h包含了c语言数学函数

但是c++用法变了,c++头文件没有扩展名,有些c头文件被转换为c++头文件后被重新命名

去掉扩展名h【使之成为c++风格的名称】,加上前缀c【表明来自c语言】

例如:C++ 版本的math.h为 cmath

⑥名称空间

如果使用iostream,而不是iostream.h,则应使用下面的名称空间编译指令来使iostream中的定义对程序可用

using namespace std;

这叫做using编译指令,现在先记住,以后再讲

⑦使用cout进行c++输出

cout << "Come up and C++ me some time.";

这是上述程序中使用的语句

  • 双引号括起来的部分是要打印的消息【c++中,用双引号括起来的一系列字符叫做字符串】
  • << 符号表示该语句把这个字符串发给cout;该符号指出了信息流动的路径。
  • cout是一个预定定义的对象,知道如何显示字符串,数字和单个字符【关于对象后面会学习】

控制符endl

cout <这也是上述程序使用的语句,看起来有点古怪

endl是一个特殊的c++符号,表示一个重要的概念:重启一行,它将导致光标移到下一行开头

如果没有这个符号,输出结果将是:Come up and C++ me some time.You won’t regret it!

诸如endl等对于cout来说有特殊含义的特殊符号被称为控制符

和cout一样,endl也是在头文件iostream中定义的,且位于名称空间std中

c++同样支持C语言的换行符 \n

两者不同的是endl确保程序继续运行前刷新输出【将其立即显示在屏幕上】;而 \n不能提供这样的保证,这意味着在有些系统中,有时可能在输入信息之后才会出现提示

⑧c++源代码的格式化

源代码中的标记与空白

一行代码中不可分割的元素叫做标记,通常必须用空格、制表符或者回车将两个标记分开

空格、制表符、回车统称为空白

C++源代码规则

  • 每条语句占一行
  • 每个函数都有一个开始花括号和一个结束花括号,这两个花括号各占一行
  • 函数中的语句都相对于花括号缩进
  • 与函数名称相关的圆括号周围没有空白

2、C++语句

①例程carrot.cpp

#include 

int main()
{
    using namespace std;

    int carrots;

    carrots = 25;
    cout << "I have ";
    cout << carrots;
    cout << "carrots";
    cout << endl;
    carrots = carrots - 1;
    cout << "Crunch, crunch. Now I have " << carrots << "carrots."<

下面探讨这个程序

②声明语句和变量

int carrots;

这条语句提供了两条信息:需要的内存以及该内存单元的名称

int是最基本的数据类型,它表示整数【没有小数部分的数字】具体的将在后面介绍

声明语句指出,此后程序将使用名称carrots来标识存储在该内存单元中的值。carrots被称为变量,因为他的值可修改。在c++中所有变量都必须声明

程序中的声明语句叫做定义声明语句,简称为定义,这意味着他将导致编译器为变量分配内存空间。在较为复杂的情况下,还可能有引用声明。这些声明命令计算机使用在其他地方定义的变量。此例中声明是定义

③赋值语句

  • 赋值语句将值赋给存储单元。

    例如:carrots = 25;将整数25赋给变量carrots表示的内存单元

  • 符号 =叫做赋值运算符。C++和C都可以连续使用赋值运算符

    例如:a = b = c = 1;是合法的

  • 赋值将从右向左进行。首先1被赋给c,然后c的值【1】被赋给b,然后b的值【1】被赋给a

④cout新花样

cout << carrots;

  • 程序没有打印"carrots",而是打印存储在carrots中的整数的值,实际上将这两个操作合二为一了,首先cout将carrots替换成25,再把值转换为适合输出的字符

  • 要打印字符串,cout只需要打印字符串中的各个字符即可,字符在计算机中储存的是编码

  • 数值在计算机内被储存为二进制数

  • cout可以“区分”打印的是数值还是字符串

3、其他C++语句

①例程getinfo.cpp

#include 

int main()
{
    using namespace std;

    int carrots;

    cout << "How many carrots do you have?" << endl;
    cin >> carrots;   //c++中的输入
    cout << "Here are two more.";
    carrots = carrots + 2;
    //连起来输出
    cout << "Now you have " << carrots << " carrots." << endl;
    return 0;
}

基于上述程序的讲解

②使用cin

cin >> carrots;

cin被用来读取用户键盘输入,输入时cin使用>>运算符从输入流中抽取字符,通常需要在运算符右侧提供一个变量,以接收抽取的信息

与cout一样,cin也是一个智能对象,它可以将通过键盘输入的一系列字符转换为接收信息的变量能够接收的字符

③类简介

  • 是C++中面向对象编程(OOP)的核心概念之一
  • 是用户定义的一种数据类型
  • 之于对象就像类型之于变量。类定义描述的是数据格式及其用法,对象则是根据数据格式规范创建的实体

具体来说

前文声明变量:int carrots;

这个代码创建了一个int类型的变量(carrots),carrots可以存储整数,可以按特定的方式使用——就像加减

现在看cout。他是一个iostream类对象。ostream类定义【iostream文件的另一个成员】描述了ostream对象表示的数据以及可以对他们执行的操作

注意:类描述了一种数据类型的全部属性【包括他可以执行的操作】,对象是根据这些描述创建的实体

你可能感兴趣的:(机器人团队,c++,编程语言)