C++ 结构体(六)

1.结构体和指针

指向结构体变量的指针

定义形式:struct  结构体名   *结构体指针名;

例如:struct  student      *p;

struct  student

{

int  num;

char name[20];

char sex;

int age;

}stu;

struct  student   *p = &stu;

p->num = 15;

在main函数中定义一个struct  student类型的指针p

p->num = 15;是给num赋值。

例子:

typedef struct stu_info

{

int  num;

char name[20];

char sex;

int age;

}Student;

Student stu[3] = {{1,"zhangsan",‘f‘,20},{2,"mary",‘f‘,18},

{3,"hunk",‘m‘,22}};

Student  *p;

p = stu;

for(;p<stu+3;p++)

{

printf("%10s:%d\n",p->name, p->age);

}

2.结构体和函数

结构体作为函数参数,有三种可能的情况:

(1)用结构体变量的成员作参数----值传递

(2)用结构体变量作参数----多值传递,效率低

(3)用指向结构体变量或数组的指针作参数----地址传递

时间: 2024-12-27 16:38:52

C++ 结构体(六)的相关文章

OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)

OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-while) 跳跃(discard, return, break, continue) 6.1函数定义   着色器是由一系列全局声明和函数定义组成的.函数声明规范如下: // prototype returnType functionName (type0 arg0, type1 arg1, ...,

【非凡程序员】 OC第六节课 (枚举,字典,结构体,NSRange,CG类型,NSnumber,空)

#import <Foundation/Foundation.h>#import "Article.h"#import "Person.h" int main(int argc, const char * argv[]) {    @autoreleasepool { //自动释放池 (半自动) //-------------------------枚举类---------------------------------//     NSArray *p

FFmpeg总结(六)AV系列结构体之AVPacket

AVPacket位置:libavcodec/avcodec.h下: AVPacket: 通常通过demuxer导出的data packet作为解码器的input data 或是收到来自编码器的data packet,通过muxer进入输出的output data 看如下图,更易理解: 对于视频来说,它通常应该包含一个压缩的帧,对于音频,可能包含多个压缩帧,允许编码器输出为空的packet,没有压缩数据,只包含数据(如一些更新参数的编码) AVPacket 是FFmpeg中为数不多的结构体,它的s

C++学习笔记(六)--结构体

1.一种自定义的类型--结构体定义: struct 结构体名称 { //成员表列也称作域 还可以包括函数,即函数成员,不过一般结构体类型中不包含,而是放在类中. 类型名 成员名; };这种结构体类型类似于数据库中的记录例: struct Me{ char name[20]; char IDnumber[20]; int age; };此时只是声明了一个Me类型,并未在内存中分配存储单元,只有定义了结构体类型的变量后,才会分配内存,类似int,float这些类型一样. 2.声明结构体变量的方法:

C语言:SWUST OJ,程序设计C 实验六 结构体 题目三 学生结构体链表(0068)

Description: 用结构体建立学生信息,学生信息包括学号.姓名.成绩,建立一个有 n 名学生的链表, 并将链表输出. Input: 一次输入学生信息包括学号.姓名.0 0 0结束程序. Sample Input: C1001 Li 70 M1002 He 89 E1003 Xie 83 M1004 Wu 92 E1005 Bao 80 Sample Output: C1001 Li 70 M1002 He 89 E1003 Xie 83 M1004 Wu 92 E1005 Bao 80

C#调用C++ 平台调用P/Invoke 结构体--含有内置数据类型的一维、二维数组、字符串指针【六】

[1]结构体中含有内置数据类型的一维数组 C++代码: typedef struct _testStru3 { int iValArrp[30]; WCHAR szChArr[30]; }testStru3; EXPORTDLL_API void Struct_ChangeArr( testStru3 *pStru ) { if (NULL == pStru) { return; } pStru->iValArrp[0] = 8; lstrcpynW(pStru->szChArr, L&quo

iOS开发之oc(十六)--Foundation(1)结构体

(一)要掌握这些的运用 NSRange(location length) ---范围                                    range:范围 NSPoint\(相当于)CGPoint ---点 NSSize\CGSize   ---尺寸 NSRect\CGRect (CGPint CGSize) ---相当于一个矩形 其实,看官方文档更能清楚,这些的用法,需要声明方法就Jump to去看,在此,仅仅列出简单用法,作为了解 (二)代码示例 1. void range

C语言(六)结构体

一.结构体概述 1.简介 结构体是一种数据类型,存储的元素可以使不同的数据类型. 结构体的组成元素,一般称为结构体成员. 2.定义 struct 结构体名{ 类型名1 成员名1; 类型名2 成员名2; -- 类型名n 成员名n; }; 3.定义结构体类型 struct Student { char *name; // 姓名 int age; // 年龄 float height; // 身高 }; 4.定义结构体变量 1)先定义结构体类型,再定义变量 2)在定义结构体类型的同时定义变量 3)直接

第六章 二叉树【算法入门经典】【结构体指针】

运行效果图 结构体指针实现 #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 10000 int failed,n,v,ans[N]; char s[N];//保存读入结点 typedef struct Node//结点类型 { int flag;//是否被赋值过 int number;//结点值 struct Node *left,*right;//左右子结点 }Node; Node *