C ++ 基本语法

笔记:https://blog.csdn.net/ClaireSy/article/details/108422945

  1. 第一个程序
  2. 注释
  3. 变量
  4. 常量
  5. 关键字
  6. 标识符命名规则
  7. 数据类型
  8. sizeof 关键字
  9. 浮点型
  10. 字符型
  11. 转义字符
  12. 字符串型
  13. 布尔类型
  14. 数据的输入 cin
  15. 运算符
  16. 程序流程结构
  17. 跳转语句
  18. 数组
  19. 冒泡排序
  20. 二维数组
  21. 函数
  22. 指针
  23. 结构体

1.第一个程序

#include<iostream>
using namespace std;
int main() {

    cout << "HelloWorld" << endl;
    system("pause");
}

2.注释

单行注释 //

多行注释 /* 内容 */

3. 变量

数据类型 变量名称 = 初始值 ;

    // 单行注释
    /*
      1.
      多行注释
      2....
     */
    int a = 10;

4.常量

用于记录程序中不可更改的数据,常量一旦定义不可修改

#define  宏常量

const 修饰的变量

#include<iostream>
using namespace std;

#define DAY 7

int main() {
    
    cout << "一周有" << DAY << "" <<endl;

    const int month = 12;

    cout << "一年有" << month << "" << endl;

    system("pause");
}

5.关键字/标识符

 6.标识符命名规则(见明知意)

  • 标识符不能是关键字
  • 标识符只能是字母、数字、下划线
  • 第一个字符必须是字母或者下划线
  • 标识符区分大小写

7.数据类型

 变量定义: 变量类型 变量名 = 变量初始值;

变量类型存在的意义是为变量分配合适的内存空间

short  2个字节 (-32768~32767)

int  4个字节 (-2147483648~2147483637)

long  32位4字节,64位 8 字节

long long 8字节

short num_1 = 10;
int num_2 = 10;
long num_3 = 10;
long long num_4 = 10;

8.sizeof 关键字

int x  = sizeof(类型);

cout << sizeof(short) << endl;
cout << sizeof(int) << endl;
cout << sizeof(long) << endl;
cout << sizeof(long long) << endl;

9.浮点型

单精度:float

双精度:double

float  4字节,7有效位数

double  8字节,15位精度

默认情况下,小数显示6位有效数字

科学计数法

float f1 = 3e2;

cout << f1 << endl;

float f2 = 3e-2;

 10.字符型

定义 char ch = 'a';

字符类型占用的内存空间: 1 字节

  • 只能使用 ‘ ’ ,不能使用双引号
  • 单引号内不能超过4个字符,但是始终只识别最后一个字符、
  • 字符对于的数字 ASCII

ASCII 表: http://ascii.911cha.com/

11.转义字符

换行

水平制表 

反斜杠  \

cout << "he	World"<<endl;
cout << "hel	World" << endl;
cout << "hedd	World" << endl;
cout << "heddd	World" << endl;

 

12.字符串型

有两种风格

1.C语言风格的串 

char  变量名[] = "字符串";

2.C++ 风格字符串

string  变量名 = “字符串”;

    //[] 必须放在变量后
    char str[] = "hello world";
    cout << str << endl;

    string str2 = "Hello ,World 2.0";
    cout << str2 << endl;

string 类型需要包含新的头文件

#include<string.h>

13.布尔类型

  • true   本质是1
  • false  本质是0 

占用 1 个字节的内存,本质上 0 代表假 , 1 代表真。 布尔类型非0即为真

14. 数据的输入

关键字 cin 

格式: cin >> 变量 ;

int a;
cout << "请输入a:";
cin >> a;
cout << "a:"<<a<<endl;

15. 运算符

算术运算符: + - * /  % ++ --

赋值运算符:+=  -=  *=  /=  %=

比较运算符:==  , !=, >,<,<=,>=, 

逻辑运算符:!  &&  ||

  • 整数相除,只保留整数部分
  • 取余 % 只能作用在整数
  • 对整数赋值小数,真正生效的只有整数部分
  • && 前置为假,则后条件不判断, || 前置为真,后条件不判断,即短路

 16.程序流程结构

  • 顺序结构 顺序执行,不发生跳转
  • 选择结构 if 语句
  • 循环结构 while, for, do-while

分支包括:单个 if ,if -else  , if -else if - else  ,嵌套if 等

三目运算符:  表达式1 ? 表达式2 : 表达式3;

    int i = 0;
    int tag = 1;
    do {
        cout << i << endl;
        i++;
        if (i == 50) {
            tag = 0;
        }
    } while (tag);

17.跳转语句

  • break

可以在 switch 中跳出,可以在循环中 ,可以出现在多层循环中

  •  continue 跳过当前行以下的代码
  • goto 可以无条件的跳转语句

语法: goto  标记

    goto flag;
    cout << "aaa"<<endl;

    cout << "bbb"<<endl;

    flag:
    cout << "ccc"<<endl;

18.数组

存放相同的数据元素

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

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

数据类型 数组名[] = {值,,,};

 一维数组数组名的用途:

  1. 可以统计整个数组在内存中的长度
  2. 可以获取数组在内存中首地址
    //数组大小
    cout << sizeof(arr) << endl;

    //数组第一个元素的大小
    cout << sizeof(arr[0]) << endl;

    //数组长度
    cout << sizeof(arr) / sizeof(arr[0]) << endl;

    //数组首地址
    cout << arr << endl;
    //数组首地址
    cout << (int)arr << endl;

    //第一个元素地址 = 数组首地址
    cout << (int)&arr[0] << endl;

    //第二个元素地址 = 第一个元素地址 + 类型大小
    cout << (int)&arr[1] << endl;

19.冒泡排序

原理:遍历数组,每一次遍历都将昂一个极大或者极小的值放在数组的一端

void bubbleSort(int data[],int size) {
    for (int i = 0; i < size-1; i++) {
        for (int j = 0; j < size-i-1; j++) {
            if (data[j] < data[j + 1]) {
                int temp = data[j];
                data[j] = data[j+1];
                data[j+1] = temp;
            }
        }
    }
}

 20.二维数组

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

    int arr[2][3];

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

    int arr3[2][3] = { {1,2,3},{4,5,6} };

    int arr4[][3] = {1,2,3,4,5,6}

21. 函数

函数参数传递:实参、形参

值传递:

形参的变化不会影响到原来的值

引用传递:

传递的是应用的地址

函数声明:提前告诉编译器函数的存在,声明可以多次,但是定义只能用有一次

函数的分文件编写:

  1. 创建 .h 文件
  2. 创建 .cpp 文件
  3. 在  .h 文件创建声明
  4. 在 cpp 文件包含头文件  (使用 ” “)
#pragma once
#include<iostream>
using namespace std;
void swap();

void swap() {
    cout << "swap..." << endl;
}

Main

#include "swap.h"
int main() {
    swap();
    return 0;
}

22.指针

    int a = 10;

    int *p = &a;

    cout << "a:" << a << endl;

    cout << "p:" << p << endl;
    
    cout << "*p:" << *p << endl;

指针变量 32位为 4 字节 ,64 位 8字节

空指针&野指针

空指针:指针变量指向地址编号为0 的指针(0~255 内存 编号是系统占用,不能访问)

    用于对指针变量进行初始化,空指针不可以进行访问

    int *p  =NULL;

野指针:指针变量指向非法的内存空间

    int* p = (int*)0x00110;

    cout << *p << endl;

const 修饰指向

  1. const 修饰指向   指针的指向可以修改,指针指向的值不可修改
  2. const 修饰常量 
  3. const 修饰指针以及常量
//常量指针
    int a = 10;
    int b = 20;

    const int* p = &a;

    //*p = 20; 不可修改
    p = &b;
 //指针常量
    int a = 10;
    int b = 20;

    int * const p = &a;
    //p = &b; 指针不可修改
    *p = 30;
    //const 修饰指针与常量
    int a = 10;
    int b = 20;

    const int * const p = &a;
    //p = &b; 指针不可修改
    //*p = 30; 值不可修改

23.结构体

构建用户自定义的数据类型

语法: 

struct  结构体名称{

成员列表

 };

结构体数组: struct 结构体名称 数组名[] = {...}

void print(const int * a){
    //a = 10;
}
原文地址:https://www.cnblogs.com/bytecodebuffer/p/13968803.html