但是往往很多情况下我们需要几种类型配套使用,就比如说你用变量描述一个人,这个人不止有int属性

如身高,体重为浮点型,名字为字符串,年龄为int

这时候我们就需要定一个一个新类型

结构体实际上和数组也差不多

只不过是不同类型

比如说一个结构体中有两个int一个char类型

那么他就会申请9个内存单元

因为int_2+char_1=4*2+1=9

分给两个int和chart

所以结构体的本身就是个地址

ide会根据你定义的结构体让你能指向他其中的元素

结构体a里面有name和age还有height三个元素,我们表层访问是不是(*a).name

a是个地址,我们只需要指向其中的地址就可以,比如a->name

我们一般存东西都是往内存里存,所以a->name=""这种是成立的

如果有一百个人的信息怎么解决

用结构数组,然后很多时候我们需要用到一些特殊的变量——指针变量

指针变量是用于存地址用的变量

通常是变量类型后+*号声明

比如int * ;就是寸int类型变量的地址用的

既然指针是变量,那么肯定也有指针变量的地址

比如int **a;

int_*就是用来存int_的地址用的

我们有两个符号要学一下,一个是&一个是_,&是取地址符号_ 是取量符号

直接打印结构体报错是因为输出的不对

你要输出什么东西,就得把对应地址里的量取出来

java里面很多东西简化了,所以你觉得直接打印结构体就会打印出来结构体的结构,但实际上不会

但是,以上这些应该属于c基础了

c++的出现是因为下面这个理由

int * a;这是 整型指针变量a

int ** a;这是整型指针变量的指针变量

地址和地址的地址

结构体按理说已经很完美了,但是实际上是不完美的,比如说我们能不能往结构体里放置函数进去

例如说我们结构体中某一个量是一个函数

这种情况也是开发中很需要的

于是乎C++创始人先是对结构体下手了

c++结构体是可以放置函数的

这样就很完美了(c不可以)

他又给结构体弄了继承和多态

可以用结构体实现继承和多态了

这其实也很完美

但是有个问题了

结构体本身是开放的

这样肯定是不行的

我们不能所有东西都开放对吧

干脆这时候 就放弃对结构体的完善了

就出来了一种新的东西叫类(Class)

类不仅有结构体的全部功能

还支持私有public private protected

其中的public类型其实就是结构体

所以结构体在这时就可以看做是特殊的类

不能说是类,可以说是类的前身

从类的出现开始c++就和c分清界限了

原来的c++可以说是对c的补充

但这时候就可以认为是一门独立的语言了

比如说c喜欢分头文件和代码文件.h和.c

只需要在头文件中查看 就可以知道函数有多少 该分配内存就开始分配了

对于没有分配内存的函数直接就是报错处理 不会说是在执行时判定

这是时代的局限性c++没有躲开这个

因为他自己最早认为自己就是c的拓展包括类来说都是放到头文件里 然后声明好类里的函数的公有私有

代码文件后缀改了.cpp

c plus plus

c + +