文档章节

C/C++结构体定义

JasonWung
 JasonWung
发布于 2016/08/11 19:09
字数 321
阅读 11
收藏 0

在C语言和C++中,结构体定义是存在区别的,比如在C语言中定义结构体,首先是使用typedef。

typedef struct Student{
    int age;
}Stu;

此时定义的结构体。可以使用 struct Student stu1 来声明变量。当然也可以使用Stu stu1 来声明,因为此时已经将struct Student 定义为Stu。

#include <stdio.h>
typedef struct Student{
	int a;
}Stu;
int main()
{
  	 struct Student stu1;
  	 stu1.a = 17;
  	 printf("第一个:%d\n", stu1.a);
  	 Stu stu2;
  	 stu2.a = 18;
     printf("第二个:%d\n", stu2.a);
     return 0;
}

而此时C++ 只需要定义 struct Student就可以了

#include <iostream>
using namespace std;
struct Student{
    int a;
}stu2;  //声明结构体的同时声明变量
int main() {
    struct Student stu1;
    stu1.a = 18;
    stu2.a = 19;
	cout  << "第一个:"<< stu1.a<<endl;
	cout  << "第二个:"<< stu2.a<<endl;
	return 0;
}

声明的同时可以直接声明一个变量,比如stu2。而在后续的声明中,可以直接使用 struct Student 来声明新的变量。如果不声明这个结构体的名称,则无法声明对于的变量,此处就不能声明stu1

#include <iostream>
using namespace std;
struct {
    int a;
}stu2;  //声明结构体的同时声明变量
int main() {
    //struct Student stu1;
    //stu1.a = 18;
    stu2.a = 19;
	//cout  << "第一个:"<< stu1.a<<endl;
	cout  << "第二个:"<< stu2.a<<endl;
	return 0;
}

未完待续

© 著作权归作者所有

共有 人打赏支持
JasonWung
粉丝 3
博文 50
码字总数 12806
作品 0
海淀
程序员
技术原理:C语言中函数指针数组浅析

发现问题 今天,在阅读Linux内核中关于socket的源代码时,遇到了下面一段代码: 在这段代码中,我们注意到proto_ops结构体的成员包括下面这样的成员变量: 这边是函数指针作为结构体成员变量...

adoryn
2015/04/01
0
0
C语言基础教程之typedef

C语言 typedef C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE: typedef unsigned char BYTE; 在这个类型定义之后,标识符...

这个人很懒什么都没留下
08/14
0
0
C++基础教程之C/C++区别

C/C++基础教程之C/C++区别 这是C++教程得第一步,后续会持续更新哦!欢迎新手(具有C基础),老鸟可绕道,可指导。 C++标准输入和输出 C++标准输入和输出分别是cin和cout,用法非常简单 cin>>n...

这个人很懒什么都没留下
09/01
0
0
C#调用C的Dll(类型对照)

C#调用C的DLL //C++中的DLL函数原型为 //extern "C" declspec(dllexport) bool 方法名一(const char 变量名1, unsigned char 变量名2) //extern "C" declspec(dllexport) bool 方法名二(cons......

KavenSu
2014/04/30
0
0
Objective-C 中类的数据结构

一、类的结构 OC 中的代码在底层实现,使用的是 C、C++,所以要研究 OC 中的类结构,可以将 OC 的代码转成 C++的代码即可。首先看一下 NSObject 的结构是什么样子的,创建一个文件并简单的编...

CoderHG
04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部