(1)c++学习笔记--变量和基本类型

xiaoxiao2021-02-28  58

1. 基本类型

基本数据类型包括算术类型和空类型。其中算术类型包括整型和浮点型;整型包括字符和bool。

算术类型的尺寸根据平台的不同而有差异,标准尺寸为:

char: 8bit , wchar_t: 16bit, char16_t: 16bit, char32_t: 32bit

short: 16bit,int: 16bit, long 32bit,long long 64bit

float:6位有效数字,double: 10位有效数字,long double 10位有效数字

unsigned和signed,有符号数字才能表示负数。

2. 类型转换

不同精度的类型之间互相转换会丢失精度。有符号数赋值给无符号数时,结果没法预测。 #include <iostream> using namespace std; int main(){ int u = 10; int i = -42; cout<<u+i<<endl; //结果是4294967264,取模后的值 return 0; } 以0开头的整数是八进制表示,以0x或0X的是十六进制表示。科学计数法,以e或E。字符或字符串前后缀: //前缀 u: char16_t U: char32_t L: wchar_t u8: utf-8类型 //后缀 u/U: unsigned f/F: float l/L: long ll/LL: long long 由extern关键字修饰的变量不能初始化,只代表声明该变量,声明和定义的区别:定义会申请存储空间。

3. 复合类型

int a = 1; int *b = &a; //*是指针,&是取地址符 int &c = a; //&是引用 *b = 2; //*此时解引用,给a重新赋值,c也变为了2 void * 可以存放任意对象的地址,但不能直接操作,因为不知道里面存放的到底是什么对象。int *&i; 从右往左边读,最靠近i的是&,说明i是一个引用,引用的是一个指针,并且是是一个int指针。存放常量对象的地址必须用指向常量的指针。 const int *p = 1; //p是一个指向常量的指针 const double pi = 3.1415; const double *const pip = π //const指针

4.顶层const:指针本身是常量;底层const:指针指向的对象是常量。 5. constexpr: 常量表达式,不可变并且在编译时就能得到结果的表达式。 6. 类型别名,有两种方式实现,一种是typedef,一种是using。

typedef double test; //test等同于double了 typedef test test2 *p; //test2等同于test,*p等同于*double using SI = Sales_item; //SI等同于Sales_item了

7.auto关键字,自动推断类型;decltype关键字,只推断出类型,但是不用这个值来初始化。

const int ci = 0; decltype(cj) x = 0; //只推断出cj是int型

8.预处理器:在编译之前执行的一段程序。

#ifndef SALES_DATA_H //头文件保护符,如果没有定义,才执行下面的代码,该头文件才会被拷贝到代码中 #define SALES_DATA_H //定义头文件保护符 #include <string> //这也是预处理功能,预处理程序会用string代替#include using namespace std; struct Sales_data { string bookNo; unsigned units_sold = 0; double revenue = 0.0; }; #endif SALES_DATA_H //结束
转载请注明原文地址: https://www.6miu.com/read-2632665.html

最新回复(0)