黑马程序员——C语言笔记之结构体以及枚举

黑马程序员——C语言基础教程笔记 黑马程序员——C语言基础教程笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录黑马程序员——C语言基础教程笔记前言Day-11.C语言概论1.1 什么是C语言1.1.1 C语言特点1.1.2 学习C语言的理由1.1.3 发展方向1.1.4 C语言中的关键字2.3.Day-21.引入库2.读入数据总结 前言 研三了,作为一枚菜鸡硕,为了找工作,只好重刷C语言。以下笔记是我在“黑马程序员:http://yun. 阅读详情

------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------

虽然结构体的用法很简单,但是OC里面用的频率很高,所以也是一个跟指针一样重要的知识点。

C语言构造类型:

       由一个或者多个已定义类型的元素用构造的方法,构造新的类型

构造类型有三种:

       数组类型   结构体类型   共用体(联合)类型

其中,结构体:

       是由一个或者多个相同或者不同的数据类型组成的构造类型

一、结构体

1、定义:

       struct 结构体名{


           成员列表;

 

       }; //注意此处的分号不能省

//定义一个iPhone的结构体
      struct iPhone{
 
          char *color;
          float  screenSize;
          int  sn;
          int  imei;
 
      };

2、结构体变量及定义方法

1)先定义结构,再说明结构变量

struct stu{
     int num;
     char name[20]; 
     char sex;
     float score; 
};
struct stu boy1,boy2;
2)在定义结构类型的同时说明结构变量

struct stu{
     int num;
     char name[20];
     char sex;
     float score;
}boy1,boy2;

3)匿名结构体定义结构变量

struct{
     int num;
     char name[20];
     char sex;
     float score; 
}boy1,boy2;
注意:定义结构体完成后,并不会给结构体分配存储空间,定义结构体变量后才分配空间。

结构体变量中成员的访问方法:

   结构体变量名.成员名

如果成员也是一个结构体,则:

  结构体变量名.成员名.成员名...

3、结构体变量的初始化

1)先定义结构体变量,然后再初始化

struct stu boy1,boy2; 
boy1.num = 1010; 
strcpy(boy1.name, "bbbbb");
//boy1.name="cjk"; //这是错误的,相当于char name[20], name="abc"; 如果写成char *name, 则name="abc"可以;
boy1.sex = 'f';
boy1.score = 18.0f;

2)定义的同时初始化

(1)全部初始化

//方法1:
struct stu{
     int num;
     char name[20];
     char sex;
     float score;
} av1={1012,"zhangsan",'f',30};
//注意 "xzmly"初始化赋值给了name[20];
//方法2:
struct stu boy1={1011,"lisi",'f',23};
//注意:初始化的顺序必须与结构体定义的时候成员的顺序一致
 

<pre name="code" class="plain">//使用另外一已经存在的结构体初始化新的结构体//两个相同类型的结构体变量的赋值,相当普通变量的赋值,是整体拷贝,而不是地址赋值,例:
struct Student stu1 = {"wangwu",12,'f'};
struct Student stu2;stu2 = stu1; // 这相当于把stu1里面所有的成员元素赋值给了stu2

(2)部分初始化

structstuboy1={.name="highge"}; //只给name单独赋值{}不能少

4、结构体变量存储原理

结构体占用的内存空间是每个成员占用的字节数之和(考虑对齐问题)

计算方法:

1)先找对齐模数

2)再计算结构体变量中各个成员占用的字节和

struct A{
short a;  // 2字节 + 2 下面是4,2不是4的倍数,所以加上2
int b;    // 4字节     上面加起来是8个字节,下面是1,8是1的倍数,所以不加 
char c;   // 1字节 + 7 上面下面是8,上面加起来是9,9不是8的倍数,所以加上7
double d; // 8字节     直接相加是24,24正好是这里面所有数字的倍数,所以就是24
};
struct B{
double d; // 8字节     下面是2,8是2的倍数,所以不加
short a;  // 2字节 + 2 上面加起来是10,下面是4,10不是4的倍数,所以加上2
int b;    // 4字节     上面加起来是12,下面是1,12是1的倍数,所以不加
char c;   // 1字节 + 7 所有的加起来是17,17并不是2 8 4 的倍数,所以要成为所有的倍数需要加上7最后得24
};

二、结构体数组

结构数组的每一个元素都是具有相同结构类型的下标结构变量

1、结构数组的定义:

    struct 结构名{

           成员表列;

}数组名[数组长度];

struct stu{
       int num;
       char *name;
       char sex;
       float score; 
}boy[5];
2、结构数组的初始化

1)定义的同时进行初始化

struct stu s[2]={{12,"sb"},{18,"fengjie"}};

2)先定义,后初始化,整体赋值

s[1]=(struct stu){23,"xiaoluo"}; // (struct stu)不能少

3)先定义,后初始化

s[1].age=12; strcpy(stu[1].name, "xxoo"); 

三、结构体指针

结构体指针变量中的值是所指向的结构体的首地址

1、定义

struct 结构名 *结构指针变量名

2、结构体指针间接访问成员值

         (*结构指针变量).成员名

或为:

         结构指针变量->成员名

四、结构体嵌套

成员又是另一个结构体变量,即构成了嵌套的结构

Struct Date{
    int month;
    int day;
    int year; 
}
struct stu{
    int num;
    char *name;
    char sex;
    struct Date birthday; Float score;// 包含了Date结构体的结构变量
}
注意:结构体不可以嵌套自己的变量,但可以嵌套自己类型的指针

//定义一个全局结构体,作用域到文件末尾 
struct Person{
      int age;
      char *name;
      struct Person *son;
};
struct Person son = {4,"kim"}; 
struct Person p = {30,"lzy",&son};
printf("name = %s,son name = %s\n",p.name,p.son->name);
五、结构体指针作为函数的参数

void changeTime(struct Time *time); 
struct Time t;
changeTime(&t);


六、枚举类型

枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解成为任何基本类型

1、定义

enum 枚举类型名{枚举值表};

2、枚举变量的定义和使用

1)先定义类型,后定义变量

enum weekday{sun,mou,tue,wed,thu,fri,sat};
enum weekday a,b,c;
2)同时定义变量和类型

enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c; 
enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;//匿名定义

关于枚举类型的代码段

#include <stdio.h>
//默认值              0            1            2
//手动赋值            5            6            7
enum iColor{kIcolorWhite=5,kIcolorBlack,kIcolorTHJ};

int main(int argc, const char * argv[]) {
    
    //1、枚举类型变量的定义
    enum iColor  iPhoneColor;  //iPhoneColor的取值是有要求的
    //取值应为kIcolorWhite,kIcolorBlack,kIcolorTHJ中的其中一个
    
    enum Sex{kSexMan,kSexWomen,kSexYao} isex;
    
    //2、枚举类型变量的初始化
    
    //给枚举变量赋值
    iPhoneColor = kIcolorTHJ;
    isex = kSexYao;
    
    //3、枚举变量如何使用
    printf("%d\n",iPhoneColor);
    
    //4、枚举变量的值
    //枚举类型定义完成以后,系统会自动给枚举的每个元素都会赋值一个整形的初值
    // 默认初值:从第一个元素开始值为0,以后个元素的值,是上一个元素的值+1,
    
    //5、应用
    struct Person{
    
        char *name;
        //char sex; //'z'
        enum Sex isex; //kSexMan,kSexWomen,kSexYao
    };
    
    //6、不按套路的出牌
    iPhoneColor = 3.4;  //尽量不要这么干
    printf("%d\n",iPhoneColor);

    return 0;
}

黑马程序员 -- C语言 结构体 预编译 ------- android培训、.Net培训、IOS培训、碧空海的技术博客,期待与您交流!---------- 第六讲  结构体  预编译  A.结构体 1.数组:只能有多个相同类型的数据构成。结构体:可以有多个不同类型的数据构成。 2.建立结构的声明; a.定义结构体类型。 Struct person { int age; double height; char *na 阅读详情

相关推荐

RemoteSensing期刊word模板

该期刊所属遥感领域,为2区。这里,我们提供了其word版本的格式模板。

Bugku 哥哥的秘密

给了个QQ号,说是空间里藏了东西,进入空间,有两个提示: hint1:解题流程为:收集空间信息--相册--收集微博信息--相册--解题--相册--提交flag hint2:解题部分题目需要下载原图才能看到哦 说明第一步要在空间中找信息,往下看发现了一个类似盲文的东西: 猜测可能是盲文加密,在线网站解密:文本加密为盲文,可自设密码|文本在线加密解密工具 (qqxiuzi.cn) ⠀⡘⠀⡙⠀⡞⠀⡄⣿⠪⡛⣶⡸⠱⠀⠍⡥⣆⡗⠀⡎⢊== 得到下一步提示:hint:密码=时地人,意思是密码是“时间地点...

qq_52907838的博客 1万+

最新测算源码PHP算命源码-风水八字-八字起名-塔罗牌占卜

未来,随着技术的发展和用户需求的变化,我们可以继续对系统进行升级和优化,以满足更多用户的需求和期望。数据库设计:创建一个名为bazi的数据库表,包含以下字段:id(自增ID)、name(姓名)、sex(性别)、birth_date(出生日期)、birth_time(出生时间)、bazi(八字结果)。数据库设计:创建一个包含塔罗牌信息的数据库表,如tarot_cards,包含字段:id(塔罗牌ID)、name(塔罗牌名称)、meaning(塔罗牌含义)等。根据操作系统的不同,PHP的安装方法会有所不同。

shanbeizi的博客 2418

C语言------结构体、枚举类型

一、结构体    结构体的定义:          在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。显然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构(structure)

huhanze的专栏 949

【Ablation Studies 理解】深度学习模型组件的对比实验/性能分析

Ablation Study 用于检测深度学习/机器学习模型中各部分构件对于整体的重要性。 可以理解为为:组件\tricks重要性测试、组件性能系统性分析、控制变量法、组件去除对比实验、性能敏感性测试、性能因子分析等 Ablation Studies 一些新颖的深度学习模型在论文中都会进行AblationStudy,这部分的主要意义在于系统性的移除模型中的各种组件/trick等因子或者是创新的...

TomRen 4588

【教程】ENVI主成分分析详解

主成分分析(PCA)是一种统计方法,简而言之就是用几种特性去描述事物。每个事物都可以用不同的特性去进行表达,但这些特性一般而言是存在相互的融合和冗余,而用主成分分析方法将这些特性进行转换成不相关的新特性。 在ENVI软件中共提供了三种主成分分析方式分别为:(1)Forward PCA Rotation Existing Statistics(2)Forward PCA Rotation New Statistics and Rotate(3)Inverse PCA Rotati...

YW_remote的博客 1万+

条件编译-结构体的使用

[code="c"] main() { struct stu { int num; char *name; char sex; float score; } boy1,boy2; boy1.num=102; boy1.name="microjava"; printf("input sex and score:");...

congine_mcfeng的专栏 503

Yolov5s/Yolov8s网络结构图

yolov8、yolov5网络结构图

Goodness2020的博客 9925

C语言入门之自定义结构体数据struct Student { int num; char name[20]; char sex; int age; 类型

用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体 例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的,因此组成一个组合数据,如student_1的变量,反映它们之间的内在联系 struct Student { int num; char name[20]; char sex; int age; f...

mygod2008ok的专栏 5万+

IgH EtherCAT 从入门到精通:第 2 章 环境搭建与编译安装

环境搭建与编译安装指南 本章详细介绍了搭建IgH EtherCAT Master开发环境的完整流程。内容包括: 硬件要求:支持多种Intel和Realtek网卡的原生驱动,以及通用网卡的generic驱动选项 软件依赖:列出Linux系统下所需的工具链和开发包 源码获取:通过Git克隆官方仓库并切换稳定版本的方法 配置选项:详细解析bootstrap脚本和configure的核心参数,包括路径设置、功能开关和实时框架选项 编译流程:从生成构建系统到最终编译安装的完整步骤 通过本章指导,读者可以完成一个可运行

从事嵌入式linux android驱动开发,拥有全栈能力 480

点云处理实操(四) -PCL中的点云三角化

点云处理实操(四) -PCL中的点云三角化

cangqiongxiaoye的博客 939

黑马程序员_C语言学习笔记之结构体和枚举

1.为什么使用结构体

MR____Wang的专栏 662

小卫星多普勒频偏MATLAB代码

多普勒频偏是由于发射机和接收机之间的相对运动而引起的频率变化。对于小卫星,由于其速度和高度的变化,多普勒频偏会变得更加明显。本文将探讨小卫星多普勒频偏的原理、影响因素以及补偿方法。多普勒频偏的原理当发射机和接收机之间存在相对运动时,接收到的信号频率会发生变化。这种频率变化称为多普勒频偏。其原理可以描述如下:设发射机和接收机之间的距离为 d,发射信号的频率为 f0,发射机和接收机的相对速度为 v。则接收到的信号频率 f 为:其中 c 为光速。

qq_59747472的博客 245

黑马程序员——ios学习笔记 C语言 结构体&链表&枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 结构体 结构体是一种构造数据类型。 与其他高级语言中的“记录”类似。 定义:由相互关联的不同数据类型的数据组成的有机整体。 用途:为处理复杂的数据结构提供了手段。                 为函数间传递不同类型的参数提供了便利。 关键字:struct  stru

tt3tt3tt的博客 467

大模型的实践应用31-基于通义千问大模型改进台风和海浪预测研究,利用机器学习与通义千问结合的思路实现对台风和海浪预测分析

通义千问大模型是阿里巴巴云推出的一款大规模语言模型,旨在通过强大的自然语言处理能力提供更广泛的服务。从最初的构想到如今的广泛应用,通义千问的发展见证了人工智能领域尤其是自然语言处理技术的巨大进步。自发布以来,通义千问不断迭代升级,不仅在规模上实现了飞跃式的增长,在性能方面也得到了显著提升。本次研究尝试将通义千问强大的自然语言处理能力与经典的时间序列预测算法相结合,旨在提高对未来天气状况预测的精度。具体来说,首先使用通义千问生成高质量的文字描述来增强特征表达力;

微学AI的博客 935

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

黑马程序员 C语言 - 08 变量、结构体、枚举

若排版有错误,请查看PDF:C语言 - 08 变量、结构体、枚举.pdf

泠风小和 416

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

黑马程序员——4、C语言(结构体、枚举)

一、jie'g

tan_qi的专栏 584

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

黑马程序员————C语言——结构体、枚举、typedef

----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

tl18353359689的专栏 446

黑马程序员——C语言------结构体、枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 结构体   一、概述 当一个整体由多种数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数据都具有不同的类型,姓名可以

casono1的专栏 615

黑马程序员——c语言基础:结构体和枚举---typedef的使用

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、什么是结构体 当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数 据都具有不同的类型,姓...

aichi1692的博客 297

黑马程序员 C语言-枚举,结构体,指针

一、 指针※指针定义: 1. 定义格式 类名标识符  *指针变量名; int *p; 2. 先定义后赋值 int a = 10; int *p; p = &a; printf(“%d”, *p); 3. 定义的同时赋值 int a = 10; int *p = &a;※指针的组合: 用指针遍历一维数组元素   先遍历char数组(‘i’,’t’),再遍历int类型数组    

YakultBenZuo的专栏 786

黑马程序员——C语言---结构体、枚举、预处理指令

1.结构体 (1)什么是结构体,结构体的用途  当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它允许内部的元素是不同类型的。  iOS用到的结构体: 描述一个点的位置, 描述矩形的大小, 描述一个矩形区域 点(x,y)

perhaps1004的专栏 490

黑马程序员-c语言结构体,联合以及枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

tutou911的专栏 403

黑马程序员—C语言—数组、字符串、结构体和枚举

————————Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——————— 一、数组 1.数组的定义格式: 类型      数组名[元素个数]; 例如: int ages[5] = {19, 19, 28, 27, 26};还有其他写法: int ages[5] = {19, 19};int ages[5] = {[3] = 27, [4] = 26

编程之路 434

黑马程序员——C语言——结构体与枚举

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——— 一、结构体 1、结构体的定义 结构体与数组的区别数组:只能由多个相同类型的数据构成结构体:可以由多个不同类型的数据构成定义结构体的3种方式 1> 先定义类型,再定义变量 // struct是关键字,是结构体类型的标志。 struct Person{ int

qq_24074659的专栏 471

黑马程序员——c语言基础之结构体

------- android培训、java培训、期待与您交流! ---------- C语言构造类型 构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”和“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。   定义结构体的方法 一般形式: struct 结构名{ 成员表列 }; 注意:最后的“;”

zhang2292的博客 552
上一篇: 黑马程序员——C语言笔记之指针
下一篇: 黑马程序员——OC与C语言的差异学习
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值