【转载】C++中结构体的声明和定义

http://blog.csdn.net/whuslei/article/details/5665289

//定义一个结构体,类型为struct Student
struct  Student     
{
    string name;
    double eng;
    double ch;
}; 
 
//定义了一个结构体,类型为struct Student;且定义了一个结构体实例,名叫Stu
10  struct  Student    
11  {
12      string name;
13      double eng;
14      double ch;
15  }Stu; 
16   
17  //定义了无名的结构体,且定义了一个结构体实例,名叫Stu
18  struct 
19  {
20      string name;
21      double eng;
22      double ch;
23  }Stu; 
24   
25  //重定义结构体,类型为struct Student 或者是Stu
26  typedef struct  Student  
27  {
28      string name;
29      double eng;
30      double ch;
31  }Stu; 
32   
33  //重定义结构体,类型为Stu
34  typedef struct  
35  {
36      string name;
37      double eng;
38      double ch;
39  }Stu;
40   

如果用typedef则,Stu stu; 
否则,struct Student stu;

【转载】C++中结构体的声明和定义

时间: 2024-10-16 02:00:03

【转载】C++中结构体的声明和定义的相关文章

结构体的声明与定义分离

最近看到一种比较新颖的写法 -- 结构体在头文件中声明, 源文件中定义 A.h typedef struct Context Context; A.cpp #include "stdafx.h" #include "A.h" struct Context { int param; char *str; }; 原以为这样应该会报错, 因为头文件中的 "struct Context" 应该是找不到的, 但amazing, 竟然能顺利编译过, 由此让我

C#中结构体的声明

定义:       结构是用户自定义的值类型 代码样式:struct Pair{    public int X, Y; //公有变量名单词的首字母大写(PascalCase规则)}struct Pair{    private int x, y; //非公有变量名第一个单词的首字母小写(camelCase规则)}struct Pair{    int x, y; //缺省的访问修饰符是private};//可以有结尾分号注意事项:结构是C#程序员用来定义自己的值类型的最普遍的机制.结构比枚举更

C语言中结构体赋值问题的讨论(转载)

今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言中结构体赋值的问题吧: 结构体直接赋值的实现 下面是一个实例: #include <stdio.h> struct Foo { char a; int b; double c; }foo1, foo2; //define two structs with three different field

当结构体遇上宏定义,以及函数指针的高级写法(结构体中能用宏定义一个函数?)

一.结构体中可以定义一般的宏定义 如: struct aaa{   #define STATUS_1 100   #define STATUS_2 200   #define STATUS_3 300   ........}: 首先,这里的宏定义是在预编译阶段完成的,编译器此时并不知道什么结构体,所以这些宏是全局可见的.   一个宏定义,如果写在结构体之内,即使与结构体之外的宏定义名字重复了最多是编译警告.可是如果不在结构体之内,名字重复可肯定是error.(未证实,可以做实验,而且可以把两处的

C /C ++中结构体的定义

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

OC类中一些细节问题(对象类存储、类中结构体的用法)

一:OC中得方法名 注意:方法名冒号和后面的and方法名冒号  都是方法名 一:对象的存储细节 类加载到代码区(包括类中得属性和方法).对象动态加载到堆内存中.指向对象的指针存放在栈区. 三:定义类常见的错误 定义类的时候,常见的错误 1)类的定义不能嵌套 2)不要漏写 @end 3) 不要忘记写实现类(如果忘记写了,编译不会报错,运行时候才报错) 4)定义成员变量的大括号经常漏写 5) 如果不写@interface 只有 @implementation 这可以,但是会报警告,建议不要这么写 6

C/C++第一天开班,序章:结构体变量声明、实例化及输出

今天第一天开班,以后会不定期更新C/C++的基础内容,希望大家能多多喜欢,若大家有好的建议,请给我留言. 今天的主题:结构体变量声明.实例化及输出 代码如下: 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 5 struct People{ 6 char Name[10]; 7 int Age; 8 };//定义包含名称和年龄字段的结构体People 9 10 int main(){ 11

2015.9.10关于链表中结构体指针的错误

昨天用结构体指针写了一个双链表的程序,编译环境是VC6.0,之前写单链表的时候也是用的这个编译器,但是昨天出了一个让我很费解的问题,代码如下: /********************************************************** * C语言实现双链表 *文件名:list.c *作者:Mr Wan *编写时间:2015.9.9 *功能:实现双链表的简单操作 *版本:1.0 * ********************************************

C++中结构体和类的区别

在C++中,结构体是一种特殊形态的类. 结构体和类的唯一区别就是:  结构体和类具有不同的默认访问控制属性. 类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) 结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型(public) C++中,不使用结构体丝毫不会影响程序的表达能力.C++之所以要引入结构体,是为了保持和C程序的兼容性. 但有时仍会在C++中使用结构体,是因为,可以使用结构体将不同类型数据组成整体,方便于保存数据.(若用类来保存,因类中成