【C语言攻略】从零开始的C语言生活—(初阶篇)初识指针结构体、

目录

前言

指针

指针的食用方式

结构体

创建结构体

结构体食用方式


前言

俗话说:一回生,二回熟,简单介绍一下结构体与指针,简单的了解结构体和指针之后之后再去深入学习,可以事半功倍。

指针

鲁迅先生说过:学指针不谈内存,那就是耍流氓。想要学好指针就必须先了解内存。内存是计算机特别重要的程序,我们写的代码或者所运行的程序都是在内存上进行的,为了有效的使用内存,计算机将内存划分为一个一个小的内存单元,每个内存单元的基本单位是一个字节。

 假设内存在计算机是这样的,一个int整形就占了4行这样的小格子,之前说过int整形是4个字节,4个字节就是32个比特位,所以一个int整形就是32个比特位。而内存也会给每个内存单元分配一个十六进制单元地址,假设创建了一个int整形的变量,他的地址就是在内存块上开辟的第一个单元地址。假设创建int变量a的第一个地址叫0x0022ff06,那么a的地址就是 0x0022ff06。地址就像是一个编号。假如我要在某某学校,xx学校、xx宿舍、602宿舍的xxx,就是通过地址找到了一个人。

 

指针的食用方式

既然了解了内存的存储规则,就来学习怎么创建指针和使用指针。int* 表示创建了一个整形的指针,用来存放整形的地址。

int main()
{
    int a = 10;
    //&取地址,取到a的地址放到p这个指针变量中
    int* p = &a;
    return 0;
}

当p取到a变量的地址后,p的地址就是a的地址,可以通过指针解引用(*操作符)去间接的访问a这个变量的地址里的变量。也可以通过指针去修改a变量里的数据。可以说个故事来解释下:a和指针p是一对好朋友,a很信任p,他把自己家的地址和家钥匙(*)交给了p,p有了a的地址和钥匙就可以随时访问a的家。a也可以通过让p帮自己从家里拿出家里的钱(修改操作)。也可以看做p是a的地址,*p就是a。

 

结构体

C语言是一门计算机语言,用来与计算机交流,既然是一门语言,语言就是用来描述生活的。当我们想要描述一个学生,学生是一个人,人是一个复杂对象。当想描述一个复杂对象时就需要知道他的属性。比如学生的属性有:学号、姓名、性别、年龄等,想要描述这些属性我们就需要用到结构体。

创建结构体

首先创建结构体需要叫struct的关键字,通过这个关键字创建一个叫学生的结构体,学号用字符串表示,因为怕学号太长怕整形接收不了,姓名和性别也分别由字符串创建,年龄用整形创建。定义好的可以叫做结构体的成员。

struct Student
{
    //学号
    char ID[18];
    //姓名
    char Name[20];
    //性别
    char Sex[10];
    //年龄
    int Age;
};

结构体食用方式

当创建好结构体就可以对结构体进行使用,首先要在要使用结构体的函数内定义一个结构体,然后才能对结构体成员进行赋值。

struct Student
{
    //学号
    char ID[18];
    //姓名
    char Name[20];
    //性别
    char Sex[10];
    //年龄
    int Age;
};

int main()
{
    //定义一个叫张三的学生
    struct Student zhangsan = {"202010010001","张三","男",18};
    //定义一个叫李四的学生
    struct Student lisi = {"202010010002","李四","女",19};
    return 0;
}

当创建好两个结构体后,可以通过点(.)操作符,对结构体成员进行访问

除点结构体成员访问操作符外,还有一个箭头(->)访问操作符。结构体可以用指针来存放,用指针对结构体进行取地址操作。再通过指针来访问结构体成员,就可以使用箭头操作符。

 箭头操作符

 结语

一条两更,弥补一下之前摸鱼问题。写到这里,你以为这就结束了吗?不,其实才刚刚开始。现在是初识C的语言完结,在简单了解C语言之后,接下来才是正式的C语言学习。

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值