👀👀#c++中包括算数类型和空类型。
类型 含义 wchat_t 宽字符 bool 布尔类型 char 字符 chat16_t unicode字符 chat_32 unicode字符 short 短整型 int 整形 long 长整型 longlong 长整型 float 单精度浮点型 double 双精度浮点型 longdouble 扩展精度浮点型 👀👀#复合类型: 是基于其他类型定义的类型(引用和指针)。 引用:为对象起一个名字,引用类型引用另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名。
int ival =1024; int &refo =ival;
注释:refo指向ival(是ival的另外一个名字) 👀👀#引用本质就是一个指针变量。 引用一旦初始化后,就不可以再发生改变(不能再引用其他变量)
int a=10; int c=12; //编译器自动转化为:int* const b=&b; //指针常量是指针指向不可以改变,同理证明为什么引用不可以更改 int &b=a; //int &b=c;(错误写法)
1 2 3 4 5 6 7 引用需要一个合法的内存空间
// int &ref=10; 错误写法 //更改方法 const int &ref =10; //编译器可以优化代码即等价于: int temp=10; const int &ref =temp; //加const以后就不能再更改变量的值了 1 2 3 4 5 6 7 👀👀#引用传递
#include using namespace std; void swap(int& a, int& b) { int temp = a; a = b; b = temp; cout << a << endl; cout << b << endl; } int main() { int a = 10; int b = 20; swap(a, b); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 引用传递,形参会修饰实参。(实参也会改变)
👀👀#简单介绍一下const的用法:
const int * const p =&a; 1 特点:指针指向和指针指向的值都不可以改变。
int * const p= &a; 1 指针常量特点: 指针的指向不可以改,指针指向的值可以改变。
const int * p =&a; 1 常量指针特点: 指针的指向可以修改,但是指针指向的值不可以改变。 👀👀#指针 指针是实现了对其他对象的间接访问。 指针本身就是一个对象,可以指针赋值和拷贝,在指针的生命周期内可以先后指向几个不同对象。指针无需在定义时赋值。 指针值 应该处于4种状态之一 1.指向一个对象 2.指向紧邻对象所占空间的下一个位置 3.空指针,没有指向任何对象 4.无效指针。(其他3种情况之外) 👀👀#void * 指针 特殊类型指针,可以存放任意对象的地址,作为函数的输入和输出、不能直接操作void * 指针所指的对象,(因为不知道所指对象类型)