基本数据类型与指针、结构体(C++)

基本数据类型:

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。

指针引用数据类型变量在使用时需要注意什么问题?
1、传递 / 传值
传递的是 地址编码:
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

2、比较
比较的也是 地址编码
如果想要比较两个数组是否相等,首先比较其地址是否相等,若地址相等,则为同一数据。其次比较数据规模,若a数组有5个数,b数组有6个数,则b>a。最后逐个数据比较,遇到不同时返回false

数据整合 :结构体

基本数据类型只能表达一个数据,想要表达复杂数据体的时候就用结构体。

结构体:(数据模板)
结构体创建出来的变量 是一个有着固定数量的,多种固定类型的数组
结构体变量存储的是这个数组的地址编码
结构体类型的数组 存储的都是这种结构体变量
#include<iostream>
using namespace std;
//1、创建学生数据类型:需要创建内容包括>>姓名、年龄、分数、地址、电话号码
struct Student
{
   //成员列表
   
   //姓名
   string name;
   //年龄
   int age;
   //分数
   float score;

}
.........

在定义结构体的同时顺便构建结构体变量,把各属性凑一起打个包,方便以后用s1.name这类格式来调用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值