【C/C++】文章目录
第三节【C/C++】初识C语言语句、函数、数组、运算符、关键字
文章目录
前言
本章节旨在初步认识指针,结构体
一、指针
指针是内存单元的地址,它可能是变量的地址、数组的地址,或者是函数的入口地址。存储地址的变量变量成为指针变量,简称为指针。
简单来说:指针是一种用来存放内存地址的变量。
1.内存
主存储器简称为主存、内存,设在主机内或主机板上,计算机中程序的运行都是在内存中进行的,用来存放机器当前运行所需要的程序和数据。
所以为了有效的使用内存,就把内存划分为一个个小的内存单元,每个内存单元的大小是1个字节。
内存是怎么编号的?
我们通常讲的32位/64位系统,是指有32根/64根地址线,通电以后形成电信号1-正电,0-负电,计算机中电信号转换为数字信号0和1组成的二进制序列。
变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。
获取变量的地址,使用地址运算符&,打印地址使用%p。方法如下:
可以看出这里a的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)。
2.指针定义
了解了内存,及内存编号,内存地址,地址怎么存储呢?因此有了指针变量。
指针变量就是用来存放内存地址的。
int main()
{
int num = 10;
int* p;//p为一个整形指针变量
p = #//指针变量p存储变量num的地址
return 0;
}
int * p = #
解析:
*说明p是指针变量,int说明p指向的对象是int类型的。
可以看到,指针变量p中存放的值是一个地址,是变量num的4个字节大小地址中的首地址0x0133FE60。
指针的使用示例:*称为间接运算符,其作用是获取指针所指向的变量。
可以看到num的值由10 变为了20。
*p = 20;解析:
*对p进行了解引用操作,获取到p所指向的变量num后为其赋值20。
char *,int *,short *,long *, float *,double *等。
3.指针变量的大小
指针变量存放的是内存地址,那指针变量的大小取决于取决于地址的大小。
32位平台下地址是32个bit位编号(即4个字节),
64位平台下地址是64个bit位编号(即8个字节)。
二、结构体
结构体可以把一个数据元素的各个不同的数据项聚合为一个整体。结构体可以使得C语言有能力描述复杂类型。
1.结构体定义
struct 结构体名 {
成员表列
}
比如描述学生,学生包含:姓名+年龄+性别+学号这几项信息。
这里只能使用结构体来描述了。
int main()
{
struct Stu
{
char name[20]; //姓名
int age; //年龄
char sex[5]; //性别
char id[5]; //学号
};
return 0;
}
2.结构体初始化
初始化时,值的顺序要与在结构体中的顺序一致。
结构体访问可以使用.操作符和->操作符。
.使用方式:
结构体变量.结构体成员变量名
->使用方式:
结构体指针->结构体成员变量名
结构体指针变量:
struct Stu * ps = &s;
总结
本章节主要初步认识了指针变量,指针变量大小,结构体创建和初始化。
还补充了之前没有介绍的操作符的使用,如&—地址运算符,*—间接运算符,.—结构体访问成员操作符,->—结构体访问成员操作符。