C++ 结构体(三)

结构体变量的定义的三种方式

第一种方法,先定义结构体类型,再定义结构体变量

一般形式:

struct   stu_info

{

char  name[12];

int num;

char id_card[19];

int g_score;

int x_score;

int s_score;

};

定义结构体变量stu1,stu2

struct  stu_info    stu1, stu2;

第二种方法,定义结构体类型的同时定义结构体变量

一般形式:

struct   stu_info

{

char  name[12];      /*学生姓名*/

int num;                 /*学生学号*/

char id_card[19];  /*身份证号码*/

int m_score;           /*数学成绩*/

int c_score;            /*语文成绩*/

int h_score;           /*历史成绩*/

}stu1,stu2;

第三种方法,直接定义结构体变量

struct

{

char  name[12];      /*学生姓名*/

int num;                 /*学生学号*/

char id_card[19];  /*身份证号码*/

int m_score;           /*数学成绩*/

int c_score;            /*语文成绩*/

int h_score;           /*历史成绩*/

}stu1,stu2;

用无名结构体直接定义变量时,只能定义一次,不建议用这种方法。

结构体变量的存储结构:

1.结构体变量的存储结构:一般情况下,逐个成员连续存放,所占空间为各成员所占空间之和。

2.一般使用 sizeof 计算结构体类型或结构体变量需要分配空间的大小,而不必考虑具体的细节。

时间: 2024-12-25 04:30:10

C++ 结构体(三)的相关文章

go:结构体的可访问性

1.要使某个符号对其他包( package)可见(即可以访问),需要将该符号定义为以大写字母开头------摘自go相关书籍2.go只限制包内外的可访问性,而不限制同包内不同文件的可访问性 本文讨论结构体三个部分的可访问性:结构体本身.结构体变量.结构体变量的成员变量 在讨论某一部分时,保证其它部分包外可访问. 1. 结构体本身   的可访问性 test1.go: package tt type Test struct { X int } main.go: package main import

《objective-c基础教程》学习笔记(三)—— 从结构体到面向对象

一听标题,感觉十分的抽象.面向对象就是(Object-Oriented Programming)的首字母缩写:OOP,是当今最主流的编程方法. 那么,面向对象编程具体有什么好处呢.是如何来实现呢?通过下面的实例,我想可以给大家最简单直观的理解了. 好了,下面就来说说我们这篇博文主要要介绍的内容吧.今天,我们通过一个绘制几何图形的实例来介绍基本的面向对象思想. 首先我们,新建一个Command Tools的命令行工具项目,选择Foundation头文件. 1 / 2 // main.m 3 //

【C语言】用结构体数组指针完成:有三个学生信息,存放在结构体数组中,要求输出全部信息

//用结构体数组指针完成:有三个学生信息,存放在结构体数组中,要求输出全部信息 #include <stdio.h> struct Stu { int num; char name[20]; char sex; int age; }; int main() { struct Stu student[3]={{317,"han",'m',20},{318,"hun",'w',22},{311,"dan",'w',18}}; struct

【C语言】用结构体数组实现:有三个候选人,每个选民只能选一个人,编写一个选票程序,最终输出候选人的票数

//用结构体数组实现:有三个候选人,每个选民只能选一个人,编写一个选票程序,最终输出候选人的票数(假设有十个选民) #include <stdio.h> #include <stdio.h> struct Person //声明结构体 { char name[20]; int count; }leader[3]={"li",0,"zhang",0,"sun",0}; //定义结构体数组并初值化 int main() { i

结构体数组初始化三种方法,转载

C语言结构体初始化的三种方法:原文链接http://www.2cto.com/kf/201503/386575.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #include <stdio.h> struct student_st {     char c;     int score;     const c

Linux C 结构体初始化三种形式

最近看linux代码时发现了结构体 struct 一种新的初始化方式,各方查找对比后总结如下: 1. 顺序初始化教科书上讲C语言结构体初始化是按照顺序方式来讲的,没有涉及到乱序的方式.顺序初始化struct必须要按照成员的顺序进行,缺一不可,如果结构体比较大,很容易出现错误,而且表现形式不直观,不能一眼看出各个struct各个数据成员的值. 2.乱序初始化乱序初始化是C99标准新加的,比较直观的一种初始化方式.相比顺序初始化而言,乱序初始化就如其名,成员可以不按照顺序初始化,而且可以只初始化部分

C语言(三)- 结构体

一.结构体 1.一般形式 不同类型数据组成的组合型数据结构,即结构体. 结构体类型的一般形式: 1 struct 结构体名{ 2 类型名 成员名1; 3 类型名 成员名2; 4 类型名 成员名3;5 ...... 6 }; 举个例子: 1 #include<stdio.h> 2 int main(void) 3 { 4 struct Date 5 { 6 int month; 7 int day; 8 int year; 9 }; 10 struct Student 11 { 12 int n

Go面向对象三之结构体方法

一:结构体方法定义 type Student struct { Name string Age int }//stu可以看做Student的副本,stu就代表Student func (stu Student) say() string { } 二:简单举例 package main import ( "fmt" ) type Personal struct { Name string Age int } func (p Personal) say() { p.Name = "

c 语言结构体struct的三种定义方式 及 typedef

struct 结构体名{ 成员列表: ..... }结构体变量: 结构体类型变量的定义 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计有三种形式,分别介绍如下: 1) 先定义结构体类型,再定义结构体类型变量:struct stu / *定义学生结构体类型* /{     char name[20]; / * 学生姓名* /     char sex; / * 性别* /     long num; /