基本数据类型:
1、基本类型(传值)
整型:byte(8),short(16),int(32),long(64)
浮点型:double(32),float(64)
字符型:char(8)
布尔型:true(8),false(8)
共同点:取值范围固定,单位都是bit。
2、引用类型(传址)
指针/引用地址数据类型:存储的数据所在内存位置地址编码
数组:数组是一个集合,用于存放相同类型的数据元素。
指针:指针就是一个内存地址,一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。
指针的赋值:要么是自己分配空间,要么是用别人分配好的,然后你指向它。
array[x] 相当于 *(array+x),且数组首元素地址等价于相应的指针类型,所以数组与指针都为传址类型。
基本类型与引用类型的对比
int i(32bit),假设i的地址为0x02,如果不给i赋初值,i为32bit的一个随机数,当给i赋初值后,i的地址不会发生改变,所以赋值只是在修改32bit的01排列组合。
int*p指向i(因为同是int类型所以成立)指向的是i的地址0x02。定义数组int arr[];arr的地址为0x01,其中arr={1,2,3,4,5,6},arr所占内存空间为(6*32)bit,而这一整个arr的地址都是0x01。
int[] arr1={1,2,3,4,5,6};
int[] arr2=arr1;
arr1[3]=100;
int n = arr2[3];
n=100
int a =100;
int b=a;
cin>>a>>50>>endl;
cout<<b<<endl;
//b=100
数据整合 :结构体
基本数据类型只能表达一个数据,想要表达复杂数据体的时候就用结构体。
#include<iostream>
using namespace std;
//1、创建学生数据类型:需要创建内容包括>>姓名、年龄、分数、地址、电话号码
struct Student
{
//成员列表
//姓名
string name;
//年龄
int age;
//分数
float score;
}
.........
在定义结构体的同时顺便构建结构体变量,把各属性凑一起打个包,方便以后用s1.name这类格式来调用。