当前课程知识点:C Programming >  Chapter 9 Structure >  9.3 Structure pointer >  9.3 Structure pointer.mp4

返回《C Programming》慕课在线视频课程列表

9.3 Structure pointer.mp4在线视频

下一节:【Source program】Structure pointer

返回《C Programming》慕课在线视频列表

9.3 Structure pointer.mp4课程教案、知识点、字幕

大家好

我是云南大学信息学院的

丁海燕老师

欢迎走进C语言程序设计课堂

今天我们讲解结构体指针

如果把一个结构体变量的起始地址

存放在一个指针变量中

那么

这个指针变量就指向该结构体变量

指向结构体对象的指针变量

既可以指向结构体变量

也可以用来指向结构体数组中的元素

指针变量的基类型

必须与结构体变量的类型相同

例如

struct Student *pt;

下面来看例9.5

通过指向结构体变量的指针变量

输出结构体变量中成员的信息

解题思路

在已有的基础上

本题要解决两个问题

一 怎样对结构体变量成员赋值

二 怎样通过指向结构体变量的指针

访问结构体变量中成员

一 通过结构体变量

stu_1访问它的成员

输出stu_1各个成员的值

使用的是stu_1.num这样的形式

程序如下

定义结构体指针变量p

p赋值 取地址stu1

让p指向stu_1

stu_1.num=10101;

对结构体变量的学号赋值

strcpy(stu_1.name,“Li Lin”);

用字符串复制函数

给stu_1.name赋值

stu_1.sex='M' ;

对结构体变量的性别赋值

stu_1.score=89.5;

对结构体变量的分数赋值

输出结构体变量stu_1的学号

输出结构体变量stu_1的姓名

输出结构体变量stu_1的性别

输出结构体变量stu_1的分数

二 通过结构体变量的指针变量

访问它的成员

输出stu_1各个成员的值

使用的是(*p).num这样的形式

程序如下

用strcpy函数给name成员赋值

输出结构体变量stu_1各成员的值

说明

为了使用方便和直观

C语言允许把(*p).num

用p->num来代替

(*p).name等价于p箭头name

如果p指向一个结构体变量stu

以下等价

① stu.成员名 (如stu.num)

② (*p).成员名 (如(*p).num)

p->成员名 (如p->num)

可以用指针变量指向结构体数组的元素

下面来看例9.6

有3个学生的信息

放在结构体数组中

要求输出全部学生的信息

解题思路

用指向结构体变量的指针处理

一 声明struct Student

并定义结构体数组

然后初始化

二 定义指向

struct Student类型指针p

三 使p指向数组首元素

输出元素中各信息

四 使p指向下一个元素

输出元素中各信息

五 再使p指向结构体

数组的下一个元素

输出它指向的元素中的有关信息

程序如下

定义若干成员

定义指向struct Student结构体

变量的指针变量p

结构体数组存储情况如图所示

P的值为stu时,输出第一个学生的信息

P的值为stu+1时,输出第二个学生的信息

P的值为stu+2时,输出第三个学生的信息

还可以用结构体变量和

结构体变量的指针作函数参数

将一个结构体变量的值

传递给另一个函数

有3个方法

一 用结构体变量的成员作参数

例如

用stu[1].num或

stu[2].name作函数实参

将实参值传给形参

用法和用普通变量作实参是一样的

属于“值传递”方法

应当注意

实参与形参的类型保持一致

二 用结构体变量作实参

用结构体变量作实参时

将结构体变量所占的内存单元的

内容全部按顺序传递给形参

形参也必须是同类型的结构体变量

在函数调用期间

形参也要占用内存单元

这种传递方式

在空间和时间上开销较大

在被调用函数期间改变形参

也是结构体变量的值

不能返回主调函数

一般较少用这种方法

三 用指向结构体变量

或数组元素的指针作实参

将结构体变量

或数组元素的地址传给形参

下面来看例9.7

有n个结构体变量

内含学生学号 姓名

和3门课程的成绩

要求输出平均成绩

最高的学生的信息

包括学号 姓名

3门课程成绩和平均成绩

解题思路

将n个学生的数据表示为结构体数组

按照功能函数化的思想

分别用3个函数来实现不同的功能

用input函数输入数据

和求各学生平均成绩

用max函数找平均成绩最高的学生

用print函数输出

成绩最高学生的信息

在主函数中先后调用这3个函数

用指向结构体变量的指针作实参

最后得到结果

本程序假设n=3

程序如下

代表学生人数为3

这是对函数进行声明

对max函数进行声明

对函数print进行声明

定义结构体数组和

指向该数组的指针变量

调用input函数

调用print函数

以max函数的返回值作为实参

以上3个函数的调用

情况各不相同:

调用input函数时,实参是指针变量

形参是结构体数组,传递的是结构体元素的地址

函数无返回值

调用max函数时,实参是指针变量

形参是结构体数组,传递的是结构体元素的地址

函数的返回值是结构体类型数据

调用print函数时,实参是结构体变量

形参是结构体变量,传递的是结构体变量中各成员的值

函数无返回值

好了

C语言程序设计课程到这里就结束了

同学们下来一定多要上机实践

为程序设计课程打好基础

谢谢大家

好了

C语言程序设计课程到这里就结束了

同学们接下来一定多要上机实践

为程序设计课程打好基础

谢谢大家

C Programming课程列表:

Chapter 1 Introduction

-1.1 The development and characteristics of C language

--1.The development and characteristics of C language .mp4

--1.1 Self test questions

-1.2 A simple C Language program

--1.2 A simple C Language program.mp4

--Discussion unit

--【Source program】 Example 1.1 output a line of text Hello, world! "

--【Source program】 Example 1.2 program composed of multiple functions, find the larger of two integers

--1.2 Self test questions

-1.3 Program, Programming Language and C Program Running Steps

--1.3 Program, Programming Language and C Program Running Steps.mp4

--Discussion unit

--Running steps of C source program in CodeBlocks

--1.3 Self test questions

-Course references

-chapter 1 Self-Test

Chapter 2 Algorithm

-2.1 The Concept and Description of Algorithms

--2.1 The Concept and Description of Algorithms.mp4

--Discussion unit

--2.1 Self test questions

-2.2 Examples of Simple Algorithms, Computational Thinking and Structured Programming

--2.2 Examples of Simple Algorithms, Computational Thinking and Structured Programming.mp4

--Discussion unit

--2.2 Self test questions

-Chapter 2 Self test questions

Chapter 3 Programming in C

-3.1 Simple Structure and Identifier of C Language Program

--3.1 Simple Structure and Identifier of C Language Program.mp4

--【Source program】 Example 3.1 input two integers and output the sum of two numbers.

--【Source program】 Example 3.2 input two integers and output the average value.

--【Source program】 Example 3.3 output the value of the character variable.

--3.1 Self test questions

-3.2 Constants, Variables and Assignments

--3.2 Constants, Variables and Assignments.mp4

--Discussion unit

--3.2 Self test questions

-3.3 Arithmetic, assignment, increment and decrement operators

--3.3 Arithmetic, assignment, increment and decrement operators.mp4

--3.3 Self test questions

-3.4 Conditions, commas, addresses, byte operators, and mixed operations among various numerical data

--3.4 Conditions, commas, addresses, byte operators, and mixed operations among various numerical data

--【Source program】 example of sizeof

--3.4 Self test questions

-3.5 Input and Output Examples and Character Input and Output

--3.5 Input and Output Examples and Character Input and Output.mp4

--【Source program】 Example. Find the root of quadratic equation of one variable.

--【Source program】 Example 1. Successively output three characters of BOY.

--【Source program】Example 2. Input 3 characters of BOY from the keyboard and output them to the screen

--3.5 Self test questions

-3.6 Formatted output printf function

--3.6 Formatted output printf function.mp4

--【Source program】 Example 3.4 output of integer data.

--【Source program】 Example 3.5 real data output.

--【Source program】 Example 3.6 character data output.

--【Source program】 Example 3.7 uses %s to output a string.

--3.6 Self test questions

-3.7 Formatted input scanf function

--3.7 Formatted input scanf function.mp4

--Discussion unit

--【Source program】 Example 3.8 Input and output integer data

--【Source program】Example 3.9 Input and output single precision and double precision real data.

--【Source program】Example 3.10 input and output character data.

--【Source program】Example 3.11 input and output string.

--3.7 Self test questions

-3.8 Basic Data Types of C Language

--3.8 Basic Data Types of C Language.mp4

--3.8 Self test questions

-Chapter 3 Self test questions

-Operator and expression self test questions

Chapter 4 Selection Structure

-4.1 Relational operators, logical operators, and if statements

--4.1 Relational operators, logical operators, and if statements.mp4

--Discussion unit

--【source example】Example 4.1 Find the root of the quadratic equation of one variable.

--【Source program】Example 4.2 Input two real numbers and output them from small to large.

--4.1 Self test questions

-4.2 Switch Statement

--4.2 Switch Statement .mp4

--Discussion unit

--【Source program】Example 4.3 uses switch statement to implement simple menu program

--【Source program】Example 4.4 converts centesimal score into the corresponding grade system score.

--4.2 Self test questions

-4.3 Examples of Selection Structural Programs

--4.3 Examples of Selection Structural Programs.mp4

--【Source program】 Example 4.5 determines whether a year is a leap year.

--【Source program】 Example 4.6 find the solution of quadratic equation of one variable.

--【Source program】Example 4.7 calculate the transportation cost for the user.

--4.3 Self test questions

-Chapter 4 Self test questions

Chapter 5 Loop Structure

-5.1 While and Do-While Statement

--5.1 While and Do…while statement.mp4

--Discussion unit

--【Source program】example 5.1 Use while statement to find 1 + 2 + 3 + +100

--【Source program】example 5.2 using do while statement to find 1 + 2 + 3 + +100

--5.1 Self test questions

-5.2 For Statement

--5.2 for statement.mp4

--【Source program】example 5.3 Use for loop to find 1 + 2 + 3 +100

--5.2 Self test questions

-5.3 Change the State of Loop Execution and Nested Loop

--5.3 Change the state of loop execution and nested loop .mp4

--【Source program】example 5.4 collecting charity donations

--【Source program】example 5.5 output a number between 100 and 200 that cannot be divided by 3.

--【Source program】multiplication table

--【Source program】example 5.6 Output the following 4*5 matrix.

--5.3 Self test questions

-5.4 Loop Structure Program example 1

--5.4 Loop structure program example 1.mp4

--【Source program】example 1

--【Source program】example 2

--【Source program】example 3

--【Source program】 Example 4

--5.4 Self test questions

-5.5 Loop Structure Program example 2

--5.5 Loop structure program example 2.mp4

--【Source program】example 5. Output the following figure.

--【Source program】example6. The problem of 100 chickens and 100 coins

--【Source program】example 7. Find the approximate value of PI

--5.5 Self test questions

-Chapter 5 Self test questions

Chapter 6 Batch Data Processing with Array

-6.1 Definition, Reference and Initialization of One-Dimensional Arrays

--6.1 Definition, Reference of One-Dimensional Arrays.mp4

--Discussion unit

--6.1 Self test questions

-6.2 One-Dimensional Array Programming

--6.2 One-Dimensional Array Programming.mp4

--【Source program】example 1. Fibonacci sequence

--【Source program】example 2. Find the maximum value and the minimum value.

--【Source program】example 3 exchanging array elements in reverse order.

--【Source program】example 4. Bubble sorting.

--6.2 Self test questions

-6.3 Definition, Reference and Initialization of Two-Dimensional Arrays

--6.3 Definition, Reference of Two-Dimensional Arrays.mp4

--6.3 Self test questions

-6.4 Two-Dimensional Array Programming

--6.4 Two-Dimensional Array Programming.mp4

--【Source program】example 1. Get the average score of each subject.

--【Source program】Example 2. The elements of row and column of a 2D array are interchanged

--6.4 Self test questions

-6.5 Definition, initialization and input and output of character arrays

--6.5 Definition, initialization and input and output of character arrays .mp4

--Discussion unit

--【Source program】Example 6.6 Output a known string.

--【Source program】Example 6.7 Output a diamond.

--【Source program】Example 6.10 Sorting of strings.

--6.5 Self test questions

-6.6 String Processing Function

--6.6 String Processing Function.mp4

--6.6 Self test questions

-6.7 Character Array Programming

--6.7 Character Array Programming.mp4

--6.7 Self test questions

-Chapter 6 Self test questions

Chapter 7 Modular Programming with Functions

-7.1 Function Concept and How to Define and Call Functions

--7.1 Function Concept and How to Define and Call Functions.mp4

--【Source program】Example 7.1

--7.1 Self test questions

-7.2 Data Transfer in Function Call, Call Procedure and Function Return Value

--7.2 Data Transfer in Function Call, Call Procedure and Function Return Value.mp4

--Discussion unit

--【Source program】Example 7.2

--7.2 Self test questions

-7.3 Declarations of called functions and nested calls to functions

--7.3 Declarations of called functions and nested calls to functions .mp4

--【Source program】Example 7.4 use a function to find the sum of t

--7.3 Self test questions

-7.4 Recursive call to function

--7.4 Recursive call to function.mp4

--【Source program】Example 7.6. How old is the fifth student?

--【Source program】Example 7.7 Use recursion method to find n!

--7.4 Self test questions

-7.5 Array as function parameter (1)

--7.5 Array as function parameter (1).mp4

--Discussion unit

--【Source program】Example 7.10

--7.5 Self test questions

-7.6 Array as function parameter (2)

--7.6 Array as function parameter (2).mp4

--【Source program】Selection sorting.

--【Source program】Example 7.13 find the maximum of a 3×4 matrix.

--7.6 Self test questions

-7.7 Local and global variables, internal and external functions

--7.7 Local and global variables, internal and external functions.mp4

--【Source program】Example 7.14

--7.7 Self test questions

-7.8 The Survival Period of Variables and the Storage Mode of Local Variables

--7.8 The Survival Period of Variables and the Storage Mode of Local Variables.mp4

--【Source program】Example 7.17

--7.8 Self test questions

-7.9 Storage Categories of Global Variables

--7.9 Storage Categories of Global Variables.mp4

--7.9 Self test questions

-Chapter 7 Self test questions

Chapter 8 Pointer

-8.1 Pointer Concept, Definition and Reference of Pointer Variables

--8.1 Pointer Concept, Definition and Reference of Pointer Variables.mp4

--【Source program】Example 8.1

--8.1 Self test questions

--Discussion unit

-8.2 Pointer variables as function parameters

--8.2 Pointer variables as function parameters.mp4

--Discussion unit

--【Source program】Example 8.3. Exchange two data with function call.

--8.2 Self test questions

-8.3 Pointer of array element, operation of pointer and reference of array element by pointer

--8.3 Pointer of array element, operation of pointer and reference of array element by pointer.mp4

--【Source program】Point to array elements with pointer variables.

--8.3 Self test questions

-8.4 Using Array Name as Function Parameter

--8.4 Using Array Name as Function Parameter.mp4

--【Source program】Store array elements in reverse order.

--8.4 Self test questions

-8.5 Reference to multidimensional arrays by pointers

--8.5 Reference to multidimensional arrays by pointers.mp4

--【Source program】Pointer variable pointing to one-dimensional array.

--8.5 Self test questions

-8.6 Referencing strings through pointers

--8.6 Referencing strings through pointers.mp4

--【Source program】Reference string by pointer.

--8.6 Self test questions

-8.7 Character pointer as function parameter

--8.7 Character pointer as function parameter.mp4

--【Source program】Character pointer as function parameter.

--8.7 Self test questions

-8.8 Pointer pointing to function

--8.8 Pointer pointing to function.mp4

--【Source program】Pointer variable pointing to the function.

--8.8 Self test questions

-8.9 Functions that return pointer values

--8.9 Functions that return pointer values.mp4

--【Source program】Intercept substring.

--8.9 Self test questions

-8.10 Pointer arrays and multiple pointers

--8.10 Pointer arrays and multiple pointers.mp4

--【Source program】Sorting of strings.

--8.10 Self test questions

-8.11 Dynamic memory allocation and pointer variables pointing to it

--8.11 Dynamic memory allocation and pointer variables pointing to it.mp4

--Discussion unit

--【Source program】Dynamic memory allocation.

--8.11 Self test questions

-Chapter 8 Self test questions

Chapter 9 Structure

-9.1 Define and use structural variables

--9.1 Define and use structural variables.mp4

--【Source program】Structure variable

--9.1 Self test questions

-9.2 Using structure arrays

--9.2 Using structure arrays.mp4

--Discussion unit

--【Source program】Structure array

--9.2 Self test questions

-9.3 Structure pointer

--9.3 Structure pointer.mp4

--【Source program】Structure pointer

--9.3 Self test questions

-Chapter 9 Self test questions

CodeBlocks Baidu online disk download

-CodeBlocks Baidu online disk download address

Final Exam

-Final Exam

--final exam

9.3 Structure pointer.mp4笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。