c语言复杂数据类型
来源:互联网 发布:多益网络充值中心 编辑:程序博客网 时间:2024/06/05 21:59
//// main.c// c结构体//// Created by stevenchang on 9/4/15.// Copyright (c) 2015 cz. All rights reserved.//#include <stdio.h>/** 局部变量和全局变量 结构体 共用体 枚举 *//** 全局变量在整个文件内有效,局部变量作用域从定义那行开始,知道方法体结束同名变量,局部变量会覆盖全局变量 全局变量的使用:只有当此变量被全文使用时,可以使才用定义全局变量 */int a = 10; //这定义了一个全局变量struct Date { int year; int month; int day;};struct Person { //结构体类型分配的内存空间为最大元素空间的倍数 char *name; struct Date date;};struct Student { //定义一个结构体类型,此时是不分配内存空间的 int age; float weight; char *name;};struct Teacher { //定义一个结构体,并定义一个变量tea int age ; double height; char *name;} tea;enum Sex { //定义了一个枚举类型 male, female};union Data { //定义一个共用体(联合体) int a; int b;};int main(int argc, const char * argv[]) { // insert code here... int a = 20; //这里定义了一个局部变量 printf("%d\n",a); /** 结构体:是由多种数据类型组成的一种构造类型。 在定义结构体类型的时候,是不会分配内存空间的。 结构体也是存在作用域的,可以放在函数体内,也可以放在文件的开头部分。 */ printf("===============================\n"); struct Student stu = {12,23.4,"steven"}; //当定义一个结构体变量和初始化的时候会分配内存空间 stu.age = 23; //通过结构体的点语法,我们可以对结构体中的元素进行赋值 printf("age=%d, weight=%f, name=%s\n",stu.age, stu.weight, stu.name); printf("==================================\n"); struct Teacher tea = {34,45.5,"love"}; //虽然定义了变量但是不能直接使用tea,赋值时格式为struct Teacher tea = ...... tea.age = 20; tea.height = 23.4; tea.name = "Maggie"; printf("age=%d, height=%f, name=%s\n",tea.age, tea.height, tea.name); /** 结构体数组 */ printf("===============================\n"); struct Student stud[3] = { {1,2.3,"adaf"}, {2,3.4,"jkljl"}, {3,4.5,"eqrq"}}; //定义了一个结构体数组用于存放多个结构体 //遍历结构体数组 for (int i = 0 ; i < 3; i++) { printf("age=%d, weight=%f, name=%s\n",stud[i].age, stud[i].weight, stud[i].name); } /** 指向结构体的指针 */ printf("===============================\n"); struct Teacher tea1 = {12,1.55,"aafaf"}; //结构体初始化和分配内存空间 struct Teacher *p = &tea1; //定义一个结构体指针并初始化 //输出结构体元素的集中方式 //1.使用tea1进行输出 printf("age=%d, height=%.2f, name=%s\n",tea1.age, tea1.height,tea1.name); printf("age=%d, height=%.2f, name=%s\n",(*p).age, (*p).height,(*p).name); printf("age=%d, height=%.2f, name=%s\n",p->age, p->height,p->name); /** 结构体嵌套 */ printf("================================\n"); struct Date date = {2011,12,23}; struct Person person = {"steven",date}; printf("year=%d, month=%d, day=%d\n",date.year, date.month,date.day); printf("name=%s,year=%d,month=%d,day=%d\n",person.name, person.date.year, person.date.month,person.date.day); /** 枚举类型:对于常量值,我们可以使用枚举类型 */ printf("===============================\n"); enum Sex sex; //定义了一个枚举变量 sex = male; //对枚举变量sex进行赋值 printf("sex=%d\n",sex); //输出结果为1,枚举类型默认数据从0开始,后面一次增加 /** 共用体(联合体):分配的内存空间是最大元素的空间 每次使用只能取其中一个元素 */ printf("=============================\n"); union Data data; data.a = 12; data.b = 123; //输出结果相同,是因为他们使用的是同一块内存空间,因此赋值只能给其中一个赋值 printf("a = %d, b = %d\n", data.a, data.b); return 0;}
0 0
- c语言复杂数据类型
- C语言复杂数据类型
- c语言复杂数据类型
- 三---c语言复杂数据类型
- C语言学习-复杂数据类型
- C语言-3-复杂数据类型
- C语言基础—复杂数据类型
- 黑马程序员--C语言之复杂数据类型
- c语言中复杂数据类型总结
- 黑马程序员-IOS-C语言基础-复杂数据类型
- 黑马程序员-IOS-C语言基础-复杂数据类型
- 黑马程序员-IOS学习笔记-C语言基础复杂数据类型
- 黑马程序员——C语言-3:复杂数据类型
- C语言32个关键字_复杂数据类型
- C复杂数据类型
- 【c++】复杂的数据类型
- 黑马程序员——IOS基础---C语言学习之复杂数据类型之其他数据类型
- C语言复杂声明
- 数据结构之线性表
- Hibernate中的merge方法详解
- mysql允许远程访问 root
- 异常捕捉
- leetcode笔记:Single Number II
- c语言复杂数据类型
- 分层 分割(优秀)
- 用Java语言编写一个金字塔程序
- 动画演示10个超有趣的Linux命令
- CSS基础知识
- C++11 引用叠加规则和模板参数类型推导规则
- UML——交互图
- android 的service
- .net做伪静态后提示只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web