为了账号安全,请及时绑定邮箱和手机立即绑定

C++基础语法入门教程

标签:
C++
概述

本文介绍了C++基础语法,包括注释、关键字、变量与数据类型、常量、控制结构、函数使用、数组与指针以及结构体与类的定义与使用。通过丰富的示例代码,帮助读者理解和掌握C++编程语言的基础知识,涵盖从环境搭建到基本语法结构的各个方面。希望这些内容能够帮助读者更好地理解和应用C++基础语法。

C++简介与环境搭建

C++语言简介

C++是一种静态类型、编译式的通用编程语言,由Bjarne Stroustrup在20世纪80年代初在贝尔实验室开发。它是一种广泛使用的系统编程语言,可以应用于各种领域,包括操作系统、浏览器、数据库和游戏开发。C++语言在保留了C语言简洁高效的特点的同时,引入了面向对象编程的概念,使得代码更加模块化和易于维护。

C++支持多种编程范式,如过程式编程、面向对象编程和泛型编程。这些特性使其成为工业界和学术界广泛使用的语言。

开发环境搭建

为了运行C++程序,你需要安装一个C++编译器。目前流行的编译器有GCC(GNU Compiler Collection)、Clang和MSVC(Microsoft Visual C++编译器)。对于Linux系统,GCC是最常用的编译器,而对于Windows系统,Visual Studio是最常见的选择。此外,也可以使用集成开发环境(IDE),如Code::Blocks、Visual Studio Code和Eclipse。

以下是安装GCC的过程:

  1. 安装GCC
    • 对于Ubuntu或Debian系统,可以通过以下命令安装:
      sudo apt-get update
      sudo apt-get install g++
    • 对于macOS系统,可以使用Homebrew安装:
      brew install gcc
  2. 使用命令行
    • 打开终端或命令提示符,编写一个简单的C++程序,保存为hello.cpp
    • 使用g++命令编译程序:
      g++ hello.cpp -o hello
    • 运行编译后的程序:
      ./hello

第一个C++程序

编写一个简单的C++程序,输出"Hello, World!"。以下是示例代码:

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

基本语法结构

注释

在C++中,注释用于向编译器提供不执行的代码。注释可分为以下几种:

  • 单行注释:使用//开始,直到行尾。
  • 多行注释:使用/*开始,*/结束。

示例代码:

// 这是单行注释

/*
这是多行注释
可以包含多个行
*/

关键字与保留字

C++的保留字(或称为关键字)是预定义的词,它们有特殊的含义,不能用作标识符。以下是一些常见的关键字:

  • auto:自动类型推导。
  • bool:布尔类型。
  • break:终止循环或switch语句。
  • case:switch语句的一部分。
  • char:字符类型。
  • class:定义类。
  • continue:跳过循环的当前迭代。
  • default:switch语句的默认部分。
  • do:开始do-while循环。
  • double:双精度浮点类型。
  • else:if语句的分支。
  • enum:枚举类型。
  • extern:声明外部变量。
  • false:布尔常量。
  • float:单精度浮点类型。
  • for:开始for循环。
  • goto:跳转到标签。
  • if:条件语句。
  • inline:内联函数。
  • int:整数类型。
  • long:长整型。
  • namespace:定义命名空间。
  • new:分配内存。
  • noexcept:异常安全。
  • nullptr:空指针。
  • operator:操作符重载。
  • private:私有成员。
  • protected:受保护成员。
  • public:公共成员。
  • register:建议编译器使用寄存器。
  • return:从函数返回。
  • short:短整型。
  • signed:带符号整数。
  • sizeof:计算对象的大小。
  • static:静态变量。
  • struct:结构体。
  • switch:多分支选择。
  • template:模板。
  • this:指向当前对象的指针。
  • throw:抛出异常。
  • true:布尔常量。
  • try:异常处理。
  • typedef:类型别名。
  • typeid:查询类型信息。
  • typename:模板中的类型。
  • union:联合体。
  • unsigned:无符号整数。
  • using:作用域解析。
  • virtual:虚函数。
  • void:无类型。
  • volatile:易变型。
  • wchar_t:宽字符。
  • while:开始while循环。

示例代码:

#include <iostream>

int main() {
    bool isTrue = true;
    int number = 42;
    double pi = 3.14159;

    std::cout << "isTrue: " << isTrue << std::endl;
    std::cout << "number: " << number << std::endl;
    std::cout << "pi: " << pi << std::endl;

    return 0;
}

变量与数据类型

变量是存储数据的容器。C++提供了多种基本数据类型,包括整型、浮点型、字符型和布尔型。

  • 整型intshortlonglong long
  • 浮点型floatdoublelong double
  • 字符型char
  • 布尔型bool

示例代码:

#include <iostream>

int main() {
    int integer = 10;
    short shortInt = 5;
    long longInt = 2000000000;
    long long veryLongLong = 999999999999999999LL;
    float floatNum = 3.14;
    double doubleNum = 2.71828;
    long double longDoubleNum = 1.6180339887;
    char character = 'A';
    bool boolean = true;

    std::cout << "整型: " << integer << std::endl;
    std::cout << "短整型: " << shortInt << std::endl;
    std::cout << "长整型: " << longInt << std::endl;
    std::cout << "非常长整型: " << veryLongLong << std::endl;
    std::cout << "浮点型: " << floatNum << std::endl;
    std::cout << "双精度浮点型: " << doubleNum << std::endl;
    std::cout << "长双精度浮点型: " << longDoubleNum << std::endl;
    std::cout << "字符型: " << character << std::endl;
    std::cout << "布尔型: " << boolean << std::endl;

    return 0;
}

常量

常量是一个值固定不变的变量。使用const关键字声明常量。常量可以是局部的或全局的。

示例代码:

#include <iostream>

const int MAX_SIZE = 100;  // 全局常量
const float PI = 3.14159;

int main() {
    const int myConst = 42;  // 局部常量
    std::cout << "全局常量 MAX_SIZE: " << MAX_SIZE << std::endl;
    std::cout << "全局常量 PI: " << PI << std::endl;
    std::cout << "局部常量 myConst: " << myConst << std::endl;

    return 0;
}

控制结构

条件语句

条件语句用于根据条件执行不同的代码块。C++中最常用的条件语句有ifif-elseswitch

if语句

if语句用于判断一个条件是否为真,如果条件为真,则执行条件语句块。

示例代码:

#include <iostream>

int main() {
    int num = 10;
    if (num > 5) {
        std::cout << "num 大于 5" << std::endl;
    }
    return 0;
}
if-else语句

if-else语句用于判断一个条件是否为真,如果条件为真,则执行if代码块,否则执行else代码块。

示例代码:

#include <iostream>

int main() {
    int num = 3;
    if (num > 5) {
        std::cout << "num 大于 5" << std::endl;
    } else {
        std::cout << "num 小于或等于 5" << std::endl;
    }
    return 0;
}
switch语句

switch语句用于根据变量或表达式的值执行不同的代码块。switch语句中的每个case标签对应一个可能的值,break语句用于终止当前casedefault关键字用于处理其他所有情况。

示例代码:

#include <iostream>

int main() {
    int day = 4;
    switch (day) {
        case 1:
            std::cout << "星期一" << std::endl;
            break;
        case 2:
            std::cout << "星期二" << std::endl;
            break;
        case 3:
            std::cout << "星期三" << std::endl;
            break;
        case 4:
            std::cout << "星期四" << std::endl;
            break;
        case 5:
            std::cout << "星期五" << std::endl;
            break;
        case 6:
            std::cout << "星期六" << std::endl;
            break;
        case 7:
            std::cout << "星期日" << std::endl;
            break;
        default:
            std::cout << "无效的天数" << std::endl;
    }
    return 0;
}

循环语句

循环语句用于重复执行一段代码,直到满足某个条件为止。C++中最常用的循环语句有forwhiledo-while

for循环

for循环用于执行一段代码多次。for循环包含三个部分:初始化、条件和递增。

示例代码:

#include <iostream>

int main() {
    for (int i = 0; i < 5; i++) {
        std::cout << "i = " << i << std::endl;
    }
    return 0;
}
while循环

while循环用于在条件为真时重复执行一段代码。

示例代码:

#include <iostream>

int main() {
    int i = 0;
    while (i < 5) {
        std::cout << "i = " << i << std::endl;
        i++;
    }
    return 0;
}
do-while循环

do-while循环与while循环类似,但不同的是do-while循环会先执行循环体,然后再检查条件。因此,do-while循环至少会执行一次。

示例代码:

#include <iostream>

int main() {
    int i = 0;
    do {
        std::cout << "i = " << i << std::endl;
        i++;
    } while (i < 5);
    return 0;
}

函数使用

函数定义

函数是一段可重用的代码块,用于执行特定的功能。函数可以返回值,也可以不返回值。函数由函数声明和函数定义组成。

示例代码:

#include <iostream>

// 函数声明
int add(int a, int b);

int main() {
    int result = add(3, 4);
    std::cout << "3 + 4 = " << result << std::endl;
    return 0;
}

// 函数定义
int add(int a, int b) {
    return a + b;
}

函数调用

函数调用是使用函数名并传递参数来执行函数。函数可以返回一个值,也可以不返回值。

示例代码:

#include <iostream>

// 函数声明
int add(int a, int b);
void greet(std::string name);

int main() {
    int result = add(3, 4);
    std::cout << "3 + 4 = " << result << std::endl;

    greet("Alice");
    return 0;
}

// 函数定义
int add(int a, int b) {
    return a + b;
}

void greet(std::string name) {
    std::cout << "Hello, " << name << "!" << std::endl;
}

参数传递

参数传递是将值传递给函数的过程。参数可以按值传递或按引用传递。

示例代码:

#include <iostream>

// 按值传递
void swap1(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

// 按引用传递
void swap2(int &a, int &b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 10;
    int y = 20;

    std::cout << "交换前 x = " << x << ", y = " << y << std::endl;

    // 按值传递
    swap1(x, y);
    std::cout << "交换后按值传递 x = " << x << ", y = " << y << std::endl;

    // 按引用传递
    swap2(x, y);
    std::cout << "交换后按引用传递 x = " << x << ", y = " << y << std::endl;

    return 0;
}

数组与指针

数组

数组是一组具有相同类型的数据元素的集合。数组可以通过下标访问其中的元素。

示例代码:

#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};

    for (int i = 0; i < 5; i++) {
        std::cout << "arr[" << i << "] = " << arr[i] << std::endl;
    }

    // 使用指针访问数组
    int *p = arr;
    for (int i = 0; i < 5; i++) {
        std::cout << "arr[" << i << "] = " << *(p + i) << std::endl;
    }

    return 0;
}

指针

指针是一种变量,用于存储内存地址。指针可以指向任何类型的变量或对象。通过指针,可以间接访问和修改变量。

示例代码:

#include <iostream>

int main() {
    int num = 10;
    int *p = &num;

    std::cout << "num = " << num << std::endl;
    std::cout << "p = " << p << std::endl;
    std::cout << "*p = " << *p << std::endl;

    // 修改指针指向的变量
    *p = 20;
    std::cout << "num = " << num << std::endl;
    std::cout << "*p = " << *p << std::endl;

    return 0;
}

数组与指针的关系

数组的名称本质上是一个指向数组第一个元素的指针。因此,数组的下标访问可以使用指针来实现。

示例代码:

#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};

    int *p = arr;
    for (int i = 0; i < 5; i++) {
        std::cout << "arr[" << i << "] = " << *(p + i) << std::endl;
    }

    return 0;
}

结构体与类

结构体的定义与使用

结构体是一种用户自定义的数据类型,用于组合不同类型的数据成员。结构体可以包含成员变量和成员函数。

示例代码:

#include <iostream>

struct Point {
    int x;
    int y;

    void print() {
        std::cout << "Point: (" << x << ", " << y << ")" << std::endl;
    }
};

int main() {
    Point p;
    p.x = 10;
    p.y = 20;

    p.print();

    return 0;
}

类的定义与使用

类是一种用户自定义的数据类型,用于封装数据成员和成员函数。类可以包含私有、保护和公共成员。

示例代码:

#include <iostream>

class Point {
private:
    int x;
    int y;

public:
    Point(int x, int y) : x(x), y(y) {}

    void print() {
        std::cout << "Point: (" << x << ", " << y << ")" << std::endl;
    }
};

int main() {
    Point p(10, 20);
    p.print();

    return 0;
}

成员函数与成员变量

成员函数是类内部定义的函数,用于访问和操作类的成员变量。成员变量是类内部定义的数据成员。

示例代码:

#include <iostream>

class Circle {
private:
    int radius;

public:
    Circle(int radius) : radius(radius) {}

    int getRadius() {
        return radius;
    }

    void setRadius(int radius) {
        this->radius = radius;
    }

    void print() {
        std::cout << "Circle with radius: " << radius << std::endl;
    }
};

int main() {
    Circle c(5);
    c.print();

    c.setRadius(10);
    c.print();

    return 0;
}

以上是C++基础语法入门教程的详细内容,涵盖了从环境搭建到结构体与类的各个基本语法结构。希望这些示例代码和解释能够帮助你更好地理解和掌握C++语言。如果你需要进一步学习,可以参考慕课网(https://www.imooc.com/)提供的C++课程

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消