【c++】数据类型+运算符类型+程序流程结构+数组+函数

本文详细介绍了C++中的基本数据类型,包括整型、浮点型、字符型、字符串型和布尔型,以及它们的内存占用。同时,讲解了预处理指令如#define和using namespace std,以及常量、变量的定义。此外,还涵盖了算术、比较和逻辑运算符的使用。最后,探讨了程序流程控制结构,如选择结构(if-else、switch-case)、循环结构(while、do-while、for)以及跳转语句(break、continue)。

数据类型

  • 注释: // /**/

  • 变量: 字母数字下划线

  • 常量:define,const

  • 关键字

  • 标识符:标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。
    在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,
    以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。

  • 数据类型(意义:给变量分配合适的内存空间)

    • 整型:short 2B (-32768`32767) int 4B long 4B long long 8B
    • 浮点型:float 4B (7为有效数字) double 8B (15-16位有效数字)
    • 字符型:char 1B (内存中存储的是ASCII编码),单引号‘’创建,(int)char,输出ASCII码,A:65,a:97
      转义字符:\n 换行,\t 水平制表符(作用:输出水平对齐),\ 反斜杠
    • 字符串型:char 变量名[]=“字符串值”;(C语言风格)
      string 变量名= “字符串值”;(C++风格),要导入头文件:#include
    • 布尔类型:bool 1B,true(本质是1),false(本质是0)
    • sizeof:sizeof(数据类型/变量),统计数据类型所占内存大小
#include <iostream>//预处理指令,告诉编译器在程序中要包含C++标准输入输出流头文件
#include <string>//字符串头文件
using namespace std;//标准命名空间,将一些实体(变量,函数,对象,类)放入其中,以解决同名冲突问题

#define Month 12 //define定义宏常量,不可修改

void typeData(){//主函数
    const int Day = 7; //const修饰的变量也为常量,不可修改
    cout << "一年有" << Month << "个月,一周有" << Day << "天" << endl;
    //cout为标准输出流,<<为流插入运算符,endl为流操纵算子,它发送一个换行符并刷新输出缓冲区

    //整型
    int a = 0;
    cout << "请输入整型a:" << endl;
    cin >> a;
    cout << "整型a=" << a << endl;

    //浮点型
    float f = 3.14f;//定义单精度数时后面加个f,防止编译器认为它是一个双精度数后再强制转换成单精度
    cout << "请输入浮点型f:" << endl;
    cin >> f;
    cout << "浮点型f=" << f << endl;

    //字符型
    char ch = 97;//ch='a';
    cout << "ch的初始值:" <<ch<< endl;
    cout << "请输入字符型ch:" << endl;
    cin >> ch;
    cout << "浮点型ch=" << ch << endl;

    //字符串型
    char str0[] = "Hello";
    string str = "hello";
    cout << "str的初始值:" << str << endl;
    cout << "请输入字符串型str:" << endl;
    cin >> str;
    cout << "字符串型str=" << str << endl;
    cout << "字符串型str所占内存空间(B):" << sizeof(str) << endl;


    //布尔型
    bool flag = false;
    cout << "bool类型初始值 flag:"  << flag << endl;
    cout << "请输入bool类型 flag:" << endl;
    cin >> flag;//任意非零的数都视为1,true
    cout << "bool类型 flag=" << flag << endl;

    system("pause");
}

int main(){
    typeData();
    return 0;
}

运算符类型

  • 算术运算符:+,-,*,/(两个数中只要有一个是浮点数,结果就算浮点数)
    %取模(取余) (只有整型可以进行取模,浮点数不能进行取模运算)
    ++(自加), --(自减)
  • 赋值运算符:=,+=,-=,*=,/=,%=
  • 比较运算符:==,!=,<,>,<=,>= (关系运算符)
  • 逻辑运算符:!,&&,|| (真为1,假为0)
  • 位运算符
void typeOperator(){
    int a = 10;
    int b = 3;
    double c = 10;
    double d = 3;

    cout << a / b << endl;
    cout << a / d << endl;
    cout << c / b << endl;
    cout << c / d << endl;

    cout << a % b << endl;

}

int main(){
    //调用另一个cpp文件的函数有两种方法
    /*方法1
    首先创建一个xxx.h头文件,声明函数aaa(int x,int y)
    然后再创建一个与头文件同名的源文件xxx.cpp,在该文件中实现函数max(int x,int y)的功能
    最后在需要调用的cpp文件中导入头文件 #inclued"xxx.h"

    */
    /*方法2
    调用前声明一下typeData()函数
    因为在同一个project里面的源文件之间的函数一般情况下是可以互相调用的,前提是要声明以及不限制它的作用域!
    */
    //void typeData();
    //typeData();

    typeOperator();
	return 0;
}

程序流程结构

顺序结构

选择结构
if,else if,else

  • 三目运算:表达式1?表达式2:表达式3 如果表达式1为真,执行表达式2并返结果,如果表达式1为假,执行表达式3并返回结果
  • switch:注意不加break时switch语句会从第一个正确的case往下依次执行。
    switch执行时判断的只能是整型或者字符型,不能是一个区间
    switch的执行效率比if高
    switch(表达式){
    case 结果1:执行语句;break;
    case 结果2:执行语句;break;
    case 结果3:执行语句;break;
    default:执行语句;break;
    }

循环结构

  • while(循环条件){
    循环语句} //循环条件为真时就一直执行
  • do{
    循环语句
    }while(循环条件);//先执行循环语句,再判断循环条件,注意while后要加分号;
  • for(起始表达式;循环条件;末尾循环体){循环语句}
  • 跳转语句:break; 跳出循环结构或switch选择结构
    continue;在循环语句中跳出本次循环中余下尚未执行的语句,继续执行下一次循环
    goto;如果标记的名称存在,执行到goto语句时,会跳转到标记的位置

数组

  • 放在一块连续的内存空间中
  • 数组中每个元素都是相同的数据类型
  • 初始话时要定义数组长度,未赋值的数组元素为0
  • 通过sizeof(数组名)可以统计数组占的内存,通过数组名查看数组的首地址
  • 数组名是数组的首地址
int main(){
	int arr1[5] = { 1,2,3,4,5 };
	cout << "一维数组空间" << sizeof(arr1) << endl;
	cout << "一维数组首地址" << arr1 << endl;
	cout << "一维数组首个元素地址" << &arr1[0] << endl;
	cout << "一维数组第2个元素地址" << &arr1[1] << endl;

	int arr2[5][4];//二维数组按行先存
	cout << "二维数组行数" << sizeof(arr2)/sizeof(arr2[0]) << endl;
	cout << "二维数组列数" << sizeof(arr2[0])/sizeof(arr2[0][0]) << endl;

	cout << "二维数组空间" << sizeof(arr2) << endl;
	cout << "二维数组首地址" << arr2 << endl;
	cout << "二维数组第一行首地址" << &arr2[0] << endl;
	cout << "二维数组第二行首地址" << &arr2[1] << endl;
	
	return 0;
}

函数

  • 返回类型 函数名称(参数列表){
    执行语句;
    return 表达式;
    }

  • 函数声明:viod funcname(); 函数声明后,可以把函数定义写在main函数后面,函数声明可以写多次,函数定义只能写一次

  • 函数的分文件编写:创建同名的xxx.h和xxx.cpp,在xxx.h中写函数声明,在xxx.cpp中写函数定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值