cscanf scanf()函数

这篇文章是关于结构的,针对初学者。我们来看看有没有没有考虑到的知识点。

结构出现的原因

在C语言中,使用数组存储数据既灵活又方便,但它有一个缺点:所有元素都是同一类型。在实践中,我们经常需要聚合不同类型的数据,如一个人的年龄、电话号码、地址等。,于是出现了结构类型,它将一系列不同的类型打包在一起,形成一个自定义类型。

结构的定义

struct { int agechar name[32];char addr[128];};有同学说还缺一个标识符。其实结构是这样的,很多书上都没有提到。

我们创建的结构没有问题。一系列不同的数据类型通过关键字struct包装在大括号中,这个结构没有名字。

没有名字的结构是匿名结构,但确实是结构类型。注意:这个结构类型指的是包括struct在内的整块。

cscanf scanf()函数

现在我们用这种结构类型来定义变量,如下:

//定义小明结构{ int agechar name[32];char addr[128];} xm//定义小王结构{ int agechar name[32];char addr[128];} xw代码特意把成员变量画成横线,方便读者比较。我们发现每次定义变量都要把整个类型写出来很不方便。如何解决这个问题?可以使用标识符,因此它的发展如下:

结构人{ int agechar name[32];char addr[128];};目前增加了一个标识符Person,它的出现会替换后面的整个成员变量,然后定义:

结构人xm,xw;相当于:struct Person = struct { int agechar name[32];char addr[128;},完整的类型名就变成了:struct Person。

这就是标识符的由来和意义。它给了我们很多启示,比如我们可以直接在函数内部定义匿名结构和变量。

void test _ struct(){ struct { int age;char name[32];} xm={20,& # 34;小明& # 34;};printf(& # 34;Xm已经存在%d年了\ n & # 34,XM . age);}有的同学会问,为什么一般把结构定义放在外面?如下

结构人{ int agechar name[32];char addr[128];};Int main (int argc,char * argv []) {/…}主要原因是定义变成了函数外的全局类型,方便各个函数引用。其实定义可以写在函数里。

结构的几个常识结论结构在函数参数中是传值的,也即整个复制一份过去。结构取地址通过 &结构变量。结构数组

结构数组与一般数组没有什么不同,例如:

结构人员组[10];(关于数组的复杂学习,请参考之前的文章编号:掌握C 006)。

结语

结构比较简单,这些都是基础知识点。在研究复杂问题之前,可以先把一些简单的结论搞清楚。

下一篇文章会专门写一个关于结构的问题。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论