struct结构体基础知识

/*
 ============================================================================
 Name        : TestStruct.c
 Author      : lf
 Version     :
 Copyright   : Your copyright notice
 Description : struct结构体基础知识
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>

//定义全局stundent结构体
struct stundent {
	char name;
	int age;
};

int main(void) {
	testStruct1();
	return EXIT_SUCCESS;
}

/**
 * 结构体的基本使用
 */
void testStruct1() {
	//使用全局结构体
	struct stundent s;
	s.name = 'A';
	s.age = 18;
	printStructInfo(s);
	printf("name=%c,age=%d\n", s.name, s.age);
	printf("=================\n");

	//定义局部teacher结构体
	struct teacher {
		char name;
		int age;
	};
	struct teacher t;
	t.name = 'B';
	t.age = 35;
	printf("name=%c,age=%d\n", t.name, t.age);
	printf("=================\n");

	//如下亦可初始化结构体,但是可读性不强
	struct teacher te={'C',55};
	printf("name=%c,age=%d\n", te.name, te.age);
}

void printStructInfo(struct stundent s){
	printf("name=%c,age=%d\n", s.name, s.age);
}
时间: 2024-10-30 17:08:12

struct结构体基础知识的相关文章

详解C++程序中定义struct结构体的方法_C 语言

什么是结构体?简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同. 结构体的定义 定义结构体使用struct修饰符,例如: struct

c++-Visula Basic 6.0语言调用C++ struct结构体中的字符串问题

问题描述 Visula Basic 6.0语言调用C++ struct结构体中的字符串问题 VB6调用C++ DLL结构体struct中的字符串,内存预分配的写法是什么,内存回收怎么做?VB不能用指针的谢谢 解决方案 VB不支持指针,一般你可以定义成局部变量,这样函数退出会自动回收的. 解决方案二: c++公用体union.结构体struct内存分配问题

struct结构体的是什么情况?c++

问题描述 struct结构体的是什么情况?c++ struct jud { int x,y,t; jud (int xx,int yy,int tt) { x=xx;y=yy;t=tt; } }; 解决方案 结构体也可以有构造函数的,与 class 相似.只是其成员默认是 public 的,而 class 默认是 private 的. 解决方案二: 结构体能够继承,提供了构造函数 还可以初始化 解决方案三: 结构体也有构造函数,只不过他和C++类最大的区别就是他的成员默认是public的,和C语

深入剖析C++中的struct结构体字节对齐_C 语言

什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同.一些平台对某些特定类型的数据只能从某些特定地址开始存取.比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证

iOS - Swift Struct 结构体

1.Struct 的创建 1.1 基本定义 结构体的定义 // 定义结构体数据类型 struct BookInfo { // 每个属性变量都必须初始化 var ID:Int = 0 var Name:String = "Default" var Author:String = "Default" var RootType:String = "Default" } 结构体的使用 // 定义结构体变量 let book = BookInfo() //

iOS - OC Struct 结构体

1.结构体的定义与调用 // 定义结构体类型 // 结构体类型名为 MyDate1 struct MyDate1 { int year; int month; int day; }; // 定义结构体类型变量 // 结构体类型变量为 d1,并赋值 struct MyDate1 d1 = {2016, 1, 6}; // 结构体类型变量值的调用 NSLog(@"d1: %d/%d/%d", d1.year, d1.month, d1.day); 2.typedef 定义结构体与调用 //

关于使用struct结构体.

问题描述 我用两个数据表,表1是学生档案(主表)表2是学生选修的科目(明细表),两个表通过ID相联,然后我建了两个结构体(如下),这两个结构体定义的变量跟表的字段是一致的.现在我想将主表和明细表的字段值传到结构体中,怎么通过循环来传到结构体对应的变量中?然后怎么循环从结构体中输出值?publicstructstudent{publicstringname;publicintage;publicstringclass;}publicstructstudent_subject{publicstrin

Javascript核心读书有感之词法结构_基础知识

编程语言的词法结构是一套基础性的规则,用来描述你如何编写这门语言.作为语法的基础,它规定了变量名是怎么样的,如何写注释,以及语句之间是如何区分的.本节用很短的篇幅来介绍javascript的词法结构. 1.字符集 javascript程序是用Unicode字符集编写的,Unicode是ASCII和Latin-1的超集,并支持地区上几乎所有的语言.ECMAscript3要求javascript的实现必须支持Unicode2,1及后续版本,ECMAscript5则要求支持Unicode3及后续版本

详解JavaScript编程中的数组结构_基础知识

数组对象的作用是:使用单独的变量名来存储一系列的值. 创建数组, 为其赋值: 实例 var mycars = new Array(); mycars[0] = "Saab"; mycars[1] = "Volvo"; mycars[2] = "BMW"; 什么是数组?数组对象是使用单独的变量名来存储一系列的值. 如果你有一组数据(例如:车名字),存在单独变量如下所示: var car1="Saab"; var car2=&qu