关键字总结

关键字

在这里插入图片描述

  1. 结构体的名字就是首地址地址,且结构体的存储方式是尽可能紧凑,大小向结构体里最大字节对齐。
#include <stdio.h>

int main()
{
    int i;
    char j;
    struct person{
        int i;
        char str[2];
    };
    struct person lihua = {6, "a"};
    printf("int size = %d\r\n", sizeof(i));
    printf("char size = %d\r\n", sizeof(j));
    printf("person size = %d\r\n", sizeof(lihua));
    return 0;
}

输出

int size = 4
char size = 1
person size = 8

int 的字节最大
4+2=6,向四字节对齐,变成了8.
2. 结构体指针移动。

#include <stdio.h>

int main()
{
    struct person{
        int i;
        char sr;
        char str[2];
    };
    struct person *p;
    struct person lihua = {6, 'a', "cc"};
    p = &lihua;
    printf("befor = %p %p\r\n", &lihua, p);
    p = p + 4;
    printf("after = %p %p\r\n", &(lihua.sr), p);
    return 0;
}

输出

befor = 000000000061FE10 000000000061FE10
after = 000000000061FE14 000000000061FE30

061FE10
after = 000000000061FE14 000000000061FE30

指针移动了4*7个字节,4*sizeof(struct person)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值