Autoleaders控制组-C语言指针结构学习笔记

 一、指针

内存与地址

内存是电脑上的存储器,程序的运行是在内存中进行的。为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 同时为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

变量的地址

变量是创建于内存中的。我们可以按照如下方法取出变量地址:

#include <stdio.h>
int main()
{
 int num = 10;
 &num;
     printf("%p\n",&num);
 return 0;
}

定义指针变量

定义指针变量与定义普通变量基本类似,要在变量名前面加星号“*”

#include<studio.h>
int main()
{
    int num = 10;
    int *p = &num;
    *p = 20;
    return 0;
}
    

int* p = &num :定义一个指针变量 p,并将 num 的地址赋给 p,这时 p 里面存放的就是 num 的地址,也就是说 p 指向了 num;

*p = 20 :* 是解引用操作符,*p 就是对 p 进行解引用,就是通过 p 里面存放的 num 的地址找到 num,并将 num 空间中存放的数据10修改为20.

需要注意,p需要一个地址,num前面必须要加取地址符&。

指针变量的大小

指针大小在32位平台是4个字节,64位平台是8个字节。

二、结构体

什么是结构体

结构体是C语言中一种重要的数据类型,该数据类型由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型。 结构体通常用来表示类型不同但是又相关的若干数据。

结构体的定义

以学生来举例:假设一个学生包括姓名、年龄、性别、学号四个信息,为了能够整体的描述一个学生,我们可以定义一个结构体类型。

struct Stu
{
    char name[20];
    int age;      
    char sex[5];  
    char id[15]; 
};

结构体的使用

#include<stdio.h>
int main()
{
    struct Stu s = { "张三",18,"nan","2023010101" };
    printf("%s\t%d\t%s\t%s\n", s.name, s.age, s.sex, s.id);
    struct Stu* ps = &s; 
    printf("%s\t%d\t%s\t%s\n", ps->name, ps->age, ps->sex, ps->id);
    return 0;
}

注意:->操作符只能在已经有结构体指针的情况下才能使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值