【准大一自学C之结构体指针就是结构体变量?】

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 【准大一自学C之结构体指针就是结构体变量?】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

准大一自学C之结构体指针就是结构体变量?

我是菜菜的但正在努力的准大一计科生瑶瑶子,此篇用于记录暑期自学C语言,现在还是初学阶段,可能有很多理解不太深入或准确的方面,希望各位同学大佬能在评论区多多指点呀!感谢!

1、什么是结构体?

首先,结构体也是一种类型,比如像整形也是一种类型,用int来描述整形
其次,它是我们创造出来用来描述一些对象,比如人、植物等等一些很复杂的对象的

下面我们用具体的例子展示一下结构体的用法:

// A code block
var foo = 'bar';
// 结构体基本用法
struct people
{char name[10];
 short age;//其实我想知道这里为什么不初始化
}//好,我们现在创造出来描述这个人名字和年龄的一个结构体类型
int main()//现在利用该类型的结构体变量也就是i

struct people i={"瑶瑶",17};
printf("人名%s\n",i.name);
printf ("年龄%d\n",i.age);

return 0;
}

or

// 第二种打印方法
struct people i={"瑶瑶",17};
struct people* b=&i;
printf("人名%s\n",(*b).name};
printf("年龄%d\n",(*b).age};
//这两个方法都是用了结构体变量打印,这里的结构体变量就是i和*b

由上面的代码我们简单学习了结构体含义、作用以及基本用法啦

2、什么是变量?&指针是变量吗?

变量?

首先,变量的含义:我们在电脑内存中取一块空间,来存放数据或其他,那么我们把这个空间命个名字怎么办,好,就用变量来命名。比如int a=1;就是在内存中找到一块空间来储存整形数据1,这个空间以a来命名。

其次,a中的数据是可以修改的,也就是变化的,所以a叫做变量而不是常量

综上所述,变量代表数据或者说内存的一个名字不是代表地址哦


2023/1/30补充
变量,就是一个容器,用来存储数据,这个容器有个名字,就是变量名。
变量存储的数据如果是地址,这个变量我们常称为指针变量或者指针

指针?

首先,指针本质是地址,按照上述内容,我们在内存中找到一个空间来存放数据,这个数据以变量来命名,那变量=指针?no no no!比如你知道一个建筑物的名字,你就能找到这个建筑物吗?当然是不行的,我们肯定要知道这个建筑物的地址对吧。在电脑中也一样,我们怎么样找到这块内存空间呢,靠哒就是指针啦,指针就是地址,不同类型的指针代表着不同类型的地址。比如 int 类型的指针,就是某个int变量的地址,


2023/1/30修改说法:
变量本质就是一个容器,代表内存空间,变量名就是这个内存空间的名字,只知道名字,是无法找到这个空间的。还需要地址/指针(这里的指针就是代表内存空间地址)

其次,指针还具有指向性

综上,指针并不是变量


2023/1/30补充
确实,指针的确不是变量,指针本质就是地址,但是口头语中,我们所说的指针,指的是指针变量,即:存放指针的变量。

指针变量?

指针变量,那本质还是变量,只不过储存的是地址,就是指针

总而言之,指针变量用来存放指针

3、结构体变量是…?

了解上述知识,那结构体变量就是结构体这种类型的某个变量,这里就是指i,和*b


2023/1/30:
结构体变量本质还是变量

4、结构体指针是…?

结构体指针,那就是结构体地址呗,我们看看上面代码用结构体指针怎么打印

// 结构体指针打印name&age
struct people{

char name[10];
int age;//注意:分号不能掉

}
int main({
struct people i={"瑶瑶",17};
struct people* b=&i;//这里的b就是指针变量

printf("%s\n",b->name);
printf("%d\n",b->age);

return 0;

}//这里我们用指针变量b和操作符->来打印name&age
//利用的是指针(地址)具有指向性

5、结构体变量&结构体指针的区别?

综上,结构体变量,是结构体的某种变量,来命名结构体空间&储存数据的
结构体指针,就是结构体指针不是变量,它是一个地址指向了结构体的某个地址,具有指向性

我们来总结一下;

// .操作符和->操作符区别
//结构体变量.成员(如name或者age)eg:
printf("年龄%d\n",i.age); 
printf("年龄%d\n",(*b).age);
//结构体指针->成员 eg:
printf("年龄%d\n",b->age);


OKK,以上就是瑶瑶子的”流水账”自学日记啦
希望对大家有帮助,如果有不准确,或错误的地方,恳请各位同学大佬多多指点呀!(✿◕‿◕✿)

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142485.html

(1)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!