C++基础 - 001 - 语言基础

程序

一个 C++ 程序通常需要包含多个.cpp格式的源代码文件,作为一个编译型语言,它们先被编译器分别编译为目标文件,再通过链接器组合成可执行程序。

可执行程序和硬件/平台相关,因此 C++ 程序只有源代码可移植,即可以在不同系统上编译并运行。

C++ 是静态类型语言,所有实体在使用时编译器都必须知道它们的类型。对象的类型决定了能在该对象上执行的操作。

一个简单的 C++ 程序:

cpp 复制代码
#include <iostream>

int main(void) {
    std::cout << "Hello, World!\n";
    return 0;
}
  • #include是预处理指令,把<iostream>中的声明拷贝到当前源代码文件中。
  • 每个程序都有且仅有一个main()函数作为函数的入口。int是它的返回类型,非零值表示函数执行失败;void表示它不接收任何参数,如果需要接收参数,则其参数为int argc, char** argv
  • {}将多条语句组合成语句块,在这里作为函数体使用。
  • 每条语句都以;结尾。
  • std::cout是标准输出流,它将对控制台的读写操作抽象成对文件的读写操作;<<将后面的参数写入到前面的参数,这样就将"Hello, World!"写入到了控制台。
  • 基本上所有可执行代码都要放在函数中,并被main()函数直接或间接地调用。

函数

函数是可被重复调用的代码块,必须先声明再调用。

函数声明需要给出:

  • 函数名:必须由大小写英文字母、数字和_组成,首字符不能是数字。
  • 返回值类型:当在函数名前面,一个函数最多只能有一个返回值,如果无返回值就用void
  • 参数的数量、类型:放在函数名后面的()里,参数之间用,隔开。
cpp 复制代码
Elem* next_elem();
void exit(int);
double pow(double, double);

调用函数时需要按顺序传入参数,参数类型必须和函数定义一致,或者可以隐式转换为目标类型:

cpp 复制代码
auto result = pow(3.0, 2.0);

函数的类型由其返回值类型和参数类型决定,例如double get(const vector<double>& vec, int index);的类型是double(const vector<double>&, int)。函数也可以是类的成员,此时类名也是函数类型的一部份,例如char& String::operator[](int index)的类型是char& String::(int)

重载指如果程序中存在同名但参数不同的函数,编译器会根据传入参数的类型进行选择:

cpp 复制代码
void print(int);
void print(double);
void print(string);

void main() {
    print(42);
    print(3.14);
    print("abc");
}

变量和类型

每个变量和表达式都有类型,类型决定了能对它们进行的操作。

这里声明一个int类型的变量length,并用=初始化为0

cpp 复制代码
int length = 0;

常用的基本数据类型包括:

  • bool:布尔值,可取truefalse
  • char:字符,如`'a``
  • int:整数,如-273420xff
  • double:双精度浮点数
  • unsigned:非负整数
相关推荐
孞㐑¥6 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
MZ_ZXD0018 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
A星空1239 小时前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c
凡人叶枫9 小时前
C++中智能指针详解(Linux实战版)| 彻底解决内存泄漏,新手也能吃透
java·linux·c语言·开发语言·c++·嵌入式开发
会叫的恐龙9 小时前
C++ 核心知识点汇总(第六日)(字符串)
c++·算法·字符串
小糯米6019 小时前
C++顺序表和vector
开发语言·c++·算法
独望漫天星辰9 小时前
C++ 多态深度解析:从语法规则到底层实现(附实战验证代码)
开发语言·c++
王老师青少年编程10 小时前
2024年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)
c++·题解·真题·csp·信奥赛·csp-s·提高组
凡人叶枫11 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
CSDN_RTKLIB11 小时前
使用三方库头文件未使用导出符号情景
c++