//结构体--嵌套结构体和结构体数组
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h> typedef struct _parent{
int num;
char name[];
//结构体内部定义结构体,如果不定义嵌套结构体变量,那么该嵌套结构体的属性则会被当作父结构体的属性
struct son{
int age;
char sname[];
};
}Parent; typedef struct _parent2{
int num;
char name[];
//结构体内部定义结构体,如果定义嵌套结构体变量,那么该嵌套结构体的属性无法被父结构体调用
//但是父结构体可以调用嵌套结构体变量
struct son2{
int age;
char sname[];
}s1;
}Parent2; struct parent3{
int num;
char name[];
}parr2[] = { { , "父亲5" }, { , "父亲6" } };//结构体数组定义初始化二 void main()
{
/*
嵌套结构体
*/
Parent p1;
p1.num = ;
sprintf(p1.name, "父亲");
p1.age = ;
sprintf(p1.sname,"儿子");
printf("num=%d;name=%s;age=%d;sname=%s\n",p1.num,p1.name,p1.age,p1.sname); Parent2 p2;
p2.num = ;
sprintf(p2.name, "父亲2");
p2.s1.age = ;
sprintf(p2.s1.sname, "儿子2");
printf("num=%d;name=%s;age=%d;sname=%s\n", p2.num, p2.name, p2.s1.age, p2.s1.sname); /*
结构体数组的定义
*/
Parent2 parr1[] = { { , "父亲3", , "儿子3" }, {,"父亲4",,"儿子4"} };//结构体数组定义初始化一 //Parent2 pa1, pa2;
//Parent2 ptd[2] = { pa1, pa2 };
/*
报错:
error C2440 : “初始化” : 无法从“Parent2”转换为“int”
rror C2440 : “初始化” : 无法从“Parent2”转换为“char”
*/
//不存在这种结构体初始化方式,C语言编译器将pa1当作第一个结构体元素的第一个参数,
//pa2当作第一个结构体元素的第二个参数
//所以报错
Parent2 ptdd[];
//memset(ptdd, , sizeof(ptdd));
memset(&ptdd, 0, sizeof(ptdd));
//两种初始化都正确,推荐使用第二种,因为第二种更加符合memset函数的用法,第二种的指针是指向数组的指针,第一种的指针是指向数组第一个元素的指针
//这里使用memset()的目的是初始化整个数组,所以第二个比较符合。
system("pause");
}

C语言 结构体(嵌套结构体--结构体数组)的更多相关文章

  1. Golang结构体struct的使用(结构体嵌套, 匿名结构体等)

    转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...

  2. C语言结构体嵌套

    #include <stdio.h> int main() { /*************************************************** *结构体嵌套:结构 ...

  3. c语言结构体3之结构体嵌套

    注意: 1结构体内部再次定义一个结构体 但是没有创建结构体的实例  也就是说再次定义的结构体内部的变量会被当做母结构体的成员变量 struct tianchao { int data; ]; stru ...

  4. C语言提高 (5) 第五天 结构体,结构体对齐 文件

    1昨日回顾 2作业讲解 3 结构体的基本定义 //1 struct teacher { int id; char name[64]; }; struct teacher t5 = { 5, " ...

  5. XmlRpc.net 入参结构体嵌套的转义操作

    项目使用C#开发,需要使用XmlRpc和Linux服务器端交互,用的是XmlRpc.net. 普通的程序调用入参和出差都没有问题,今天遇到入参结构体嵌套,结果 args 入参在服务器端不能解析.抓包数 ...

  6. Go语言学习笔记(四)结构体struct & 接口Interface & 反射

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  7. c语言的作用域、变量与结构体

    一.变量的作用域 根据变量的作用域,可以分为: 1.局部变量: 1> 定义:在函数(代码块)内部定义的变量(包括函数的形参) 2> 作用域:局部变量只有在定义它的函数内部使用,其它函数不能 ...

  8. C语言第十次博客作业--结构体

    一.PTA实验作业 题目1: 结构体数组按总分排序 1. 本题PTA提交列表 2. 设计思路 求出每名学生的总分 定义i,j循环变量 for i=0 to n for j=0 to 3 p[i].su ...

  9. Go语言学习笔记(四)结构体struct & 接口Interface & 反射reflect

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  10. C语言(C99标准)在结构体的初始化上与C++的区别

    C++中由于有构造函数的概念,所以很多时候初始化工作能够很方便地进行,而且由于C++标准库中有很多实用类(往往是类模板),现代C++能十分容易地编写. 比如现在要构造一个类Object,包含两个字段, ...

随机推荐

  1. delphi中使用mediaplayer控件播放音乐

    新建一个名字为media的文件夹,把要播放的音乐文件放在这个文件夹里. ExtractFilePath是用来获得产生的可执行程式所在的路径,因为我们把要播放的音乐文件放在了可执行程式的那个根目录下. ...

  2. 【mybatis】count 计数查询 + List的IN查询

    mybatis中conut计数的sql怎么在mapper中写? Mapper.java类这么写 @Mapper public interface GoodsBindConfigMappingMappe ...

  3. IIS 7 网站权限问题

    IIS7 应用程序池[标识]为[ApplicationPoolIdentity] 给程序目录赋权限: IUSER IIS AppPool\[应用程序池名]

  4. 推荐10个免费的HTML编辑器

    如果你想开发一个网站,你肯定想要一个很棒的HTML编辑器,一个好的编辑器可以让代码更加整齐格式化,前端显示也会更好,从而提升你的工作效率.下面就为开发者推荐10个免费的HTML编辑器,你可以尝试使用. ...

  5. Java 图片添加水印效果

    package com.xiaowu.drawwater.demo; import java.awt.AlphaComposite; import java.awt.Graphics2D; impor ...

  6. ajax asynx:false

    默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为 false.注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行 (默认: true) 默认设置下,所有请求均为 ...

  7. Oracle中读取数据一些原理研究

    文章很多摘录了 http://blog.163.com/liaoxiangui@126/blog/static/7956964020131069843572/ 同时基于这篇文章的基础上,补充一些学习要 ...

  8. mac上虚拟机:VMWare Fusion, VirtualBox, Parallels Desktop, CrossOver, Veertu

    作者:Louis Tong链接:https://www.zhihu.com/question/35731328/answer/66127970来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

  9. npm依赖管理:冗余,依赖树

    npm的依赖树查询:原理都是查询文件夹node_modules的结构.比如mac的node_modules位置在/usr/local/lib下.具体项目的node_modules位置位于项目根目录下. ...

  10. php之变量覆盖漏洞讲解

    1.变量没有初始化的问题(1): wooyun连接1:[link href="WooYun: PHPCMS V9 member表内容随意修改漏洞"]tenzy[/link] $up ...