C++全系列学习(基础篇)

一、基础语法

1、数据类型

基本数据类型:

int 用于表示整数
float 用于表示单精度浮点数
double 用于表示双精度浮点数
char 用于表示字符
bool 用于表示布尔值,只能取 truefalse
void 表示无类型,通常用于函数返回类型或指针类型

复合数据类型:

数组 由相同类型的元素组成的集合
结构体(struct 由不同类型的成员组成的复合类型
枚举(enum 一组具有命名值的常量
类(class 一种封装数据和操作的方式,支持面向对象编程
指针(pointer 存储内存地址的变量,用于间接访问内存中的数据
引用(reference 提供现有变量的别名,用于简化代码和避免复制

引例:

int a = 10;
cout<<sizeof(a)<<endl; //统计该变量所占内存大小

//科学计数法
float a = 3e2; //表示3*10^2
float a = 3e-2; //表示3*10^-2

//字符串
a = 'b'
a = "b"
a = "hello" //单个字符时可用''或"",字符串只能用""

//转义字符
cout<<"hello\n"<<endl; \n为换行符

cout<<"aa\thello"<<endl;
cout<<"aaaa\thello"<<endl;
cout<<"a\thello"<<endl; //\t为水平制表符,可整齐输出数据

2、运算符

算数运算符

/可以是两个小数相除,若是两个整数相除则结果向下取整

%为取模

递增递减

++ 前置递增 a=2,b=++a a=3,b=3
++ 后置递增 a=2,b=a++ a=3,b=2
-- 前置递减 a=2,b=--a a=1,b=1
-- 后置递减 a=2,b=a-- a=1,b=2

所谓前置就是先加1,后置就是先运算

逻辑运算符

运算符 术语 示例 结果
!a 若a为假则!a为真
&& a&&b 若a与b都为真则为真,否则为假
|| a||b 若a与b有一个为真则为真,否则为假

3、数组

一维数组

3种定义方式:

1)数据类型 数组名[数组长度];

2)数据类型 数组名[数组长度] = {值1,值2,……}

注意:若实际值与长度不同时,自动用0补足

3)数据类型 数组名[] = {值1,值2,……}

int arr[10];
arr[0] = 1;

int arr2[4] = {1,2,3,4};

int arr3[] = {1,2,3};
获取首地址

两种方式:arr或&arr[0]

数组长度统计
数组占用内存空间大小:sizeof(arr)
数组单个元素占用内存空间大小:sizeof(arr[0])
数组长度:sizeof(arr) / sizeof(arr[0])
冒泡排序(后文具体介绍)
  1. 比较相邻元素: 从第一个元素开始,比较相邻的两个元素,如果它们的顺序不正确(比如在升序排序中,前一个元素大于后一个元素),则交换它们。

  2. 一次遍历完成: 经过一次遍历,最大(或最小)的元素会被移到序列的最后位置。

  3. 重复步骤1和2: 重复进行上述步骤,直到序列完全有序。在每次遍历中,待排序序列的长度减一,因为每次遍历都会将一个元素放置到了正确的位置上

二维数组

定义方式

二维数组定义的4种方式:

1)数据类型 数组名[ 行数 ][ 列数 ];

2)数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2} ,{数据3,数据4} };

3)数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};

4)数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4}

注意:常用第二种,可读性较强

int array2D[3][3] = {
  {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
cout << "Array elements:" << endl;
for(int i = 0; i < 3; ++i) {
    for(int j = 0; j < 3; ++j) {
        cout << array2D[i][j] << " ";
    }
    cout << endl;
}

Array elements:
1 2 3
4 5 6
7 8 9
计算行数与列数

二维数组的行数:sizeof(arr) / sizeof(arr[0])

二维数组的列数:sizeof(arr[0]) / sizeof(arr[0][0])

地址

二维数组首地址:arr[0] 或 &arr[0][0]

二维数组第1个元素的地址: arr[0] 或 &arr[0][0]

二维数组第 0 行的地址: arrarr[0]arr + 0 

二维数组第 i 行的地址:arr[i]arr + i

二维数组第 i 行首元素的地址:arr[i]arr + i*(arr + i)&a[0] + i

二维数组第 i 行第 j 列元素的地址:&arr[i][j]*(arr + i) + j

4、循环

for循环

#include<bits/stdc++.h>
using namespace std;
int main ()
{   int sum=0;
    for (int i=1; i<=100 ; ++i)    
       sum+=i;
    cout<<sum;
    return 0;
} 

while循环

while(表达式)语句;

while(表达式){

    语句1;

    语句2;

}

例:用while打印数组

#include <iostream>
using namespace std;

int main() {
    int array[] = {1, 2, 3, 4, 5};
    int length = sizeof(array) / sizeof(array[0]); // 计算数组的长度

    cout << "Array elements: ";
    int i = 0; // 初始化计数器
    while (i < length) {
        cout << array[i] << " ";
        i++; // 更新计数器
    }
    cout << endl;

    return 0;
}

do-while循环

do{

    语句1;

    语句2;

}

while(条件表达式)

示例:获取输入,直到输入的值为正数为止

#include <iostream>
using namespace std;

int main() {
    int num;

    do {
        cout << "请输入一个正数:";
        cin >> num;
    } while (num <= 0);

    cout << "你输入的正数是:" << num << endl;

    return 0;
}

while和do-while的区别

  1. while 循环

    • while 循环中,循环条件会在每次循环开始之前被检查。如果条件为真,循环体会执行,然后再次检查条件。如果条件为假,循环终止。
    • 这意味着,如果条件一开始就为假,循环体可能一次都不会执行。
  2. do-while 循环

    • do-while 循环中,循环体会先执行一次,然后再检查循环条件。只要条件为真,循环体会继续执行,否则循环终止。
    • 这意味着,do-while 循环至少会执行一次循环体,即使条件一开始就为假。

嵌套循环

示例:水仙花数字

#include<bits/stdc++.h>
using namespace std;
int main()
{  for (int a=1; a<=9; ++a)
      for (int b=0; b<=9; ++b)
         for (int c=0; c<=9; ++c)
           { if (a*a*a+b*b*b+c*c*c==a*100+b*10&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值