C语言结构体如何使用

蜗牛 互联网技术资讯 2022-05-07 22 0

本文小编为大家详细介绍“C语言结构体如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言结构体如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    本质

    一些值的集合。

    简单使用

    #include <stdio.h>
    struct User {
    	char uName[20];
    	char uPass[20];
    };
    int main() {
    	struct User u1 = {
    		"abc","123"
    	};
    	printf("%s\n", u1.uName);
    	printf("%s\n", u1.uPass);
    	return 0;
    }

    效果:

    C语言结构体如何使用  c语言 第1张

    一些写法

    声明之后,可以立即创建实例。

    也可以单独声明。

    #include <stdio.h>
    struct User {
    	char uName[20];
    	char uPass[20];
    } u1, u2, u3;
    struct User u4;
    int main() {
    	struct User u5;
    	return 0;
    }

    匿名结构体:我用了,你们别想再用。

    struct {
    	char uName[20];
    	char uPass[20];
    }x;

    我套我自己

    只能套指针,因为空间有限。

    举例:链表。

    #include <stdio.h>
    struct Node {
    	int val;
    	struct Node* next;
    };
    int main() {
    	struct Node a = { 333,NULL };
    	struct Node b = { 666,&a };
    	printf("%d\n", (*b.next).val);
    	return 0;
    }

    效果:

    C语言结构体如何使用  c语言 第2张

    内存对齐

    结构体放成员,是一个一个放的。

    第一个放到首个地址处。

    第二个开始,计算一个对齐数,该数是以下两个值的较小者:

    1,VS的默认值,8。

    2,该成员所占字节数。

    实际的偏移量是对齐数的整数倍。

    最后,结构体的大小是最大对齐数的整数倍。

    举例-int char char

    #include <stdio.h>
    struct A {
    	int a;
    	char b;
    	char c;
    };
    int main() {
    	struct A a = { 1,1,1 };
    	printf("%lld", sizeof(a));
    	return 0;
    }

    效果:8

    C语言结构体如何使用  c语言 第3张

    图解:

    int放在首位。

    char占1字节,直接放。

    第二个char也是。

    最后长度,按int的字节数的整数倍,也就是8。

    C语言结构体如何使用  c语言 第4张

    举例-char int char

    #include <stdio.h>
    struct A {
    	char b;
    	int a;
    	char c;
    };
    int main() {
    	struct A a = { 1,1,1 };
    	printf("%lld", sizeof(a));
    	return 0;
    }

    效果:12

    C语言结构体如何使用  c语言 第5张

    图解:

    char直接放。

    int从第四个开始放。

    char直接放。

    最后长度:从9开始第一个4的倍数,12。

    C语言结构体如何使用  c语言 第6张

    举例-char char int

    #include <stdio.h>
    struct A {
    	char b;
    	char c;
    	int a;
    };
    int main() {
    	struct A a = { 1,1,1 };
    	printf("%lld", sizeof(a));
    	return 0;
    }

    效果:8

    C语言结构体如何使用  c语言 第7张

    图解:两个char直接放。

    int从下一个4的整数倍,也就是第五个开始放。

    最后长度:从8开始第一个4的倍数,8。

    C语言结构体如何使用  c语言 第8张

    由结构体指针访问成员

    就是一种箭头的写法。

    #include <stdio.h>
    struct A {
    	int a;
    };
    int main() {
    	struct A a = { 333 };
    	struct A* b = &a;
    	printf("%d\n", b->a);
    	return 0;
    }

    效果:

    C语言结构体如何使用  c语言 第9张

    读到这里,这篇“C语言结构体如何使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注蜗牛博客行业资讯频道。

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    评论