c语言:通过指向结构体变量的指针变量输出结构体变量中成员的信息

通过指向结构体变量的指针变量输出结构体变量中成员的信息。

解:程序:

#include<stdio.h>

#include<string.h>

int main()

{

struct Student

{

long int num;

char name[20];

char sex[10];

float score;

};

struct Student stu_1;//定义struct Student类型的变量stu_1

struct Student *p;

p = &stu_1;

stu_1.num = 1010;

strcpy(stu_1.name, "Li Lin");//用字符串复制给stu_1.name赋值

strcpy(stu_1.sex, "Man");

stu_1.score = 89.5;

printf("num:%ld\nname:%s\nsex:%s\nscore:%5.1f\n", stu_1.num, stu_1.name, stu_1.sex, stu_1.score);

printf("\nnum:%ld\nname:%s\nsex:%s\nscore:%5.1f\n", (*p).num, (*p).name, (*p).sex, (*p).score);

return 0;

}

结果:

num:1010

name:Li Lin

sex:Man

score: 89.5

num:1010

name:Li Lin

sex:Man

score: 89.5

请按任意键继续. . .

时间: 2024-08-06 03:21:46

c语言:通过指向结构体变量的指针变量输出结构体变量中成员的信息的相关文章

【C语言】-指向一维数组元素的指针

本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素. 回到顶部 一.用指针指向一维数组的

【C语言】指向一维数组元素的指针

本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素. 回到顶部 一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8

C语言:通过指针函数输出二维数组中每个学生的成绩

// //  main.c //  Pointer_function // //  Created by ma c on 15/8/2. //  Copyright (c) 2015年 bjsxt. All rights reserved. //  要求:通过指针函数,输入学生学号时,在控制台上显示对应的学生成绩. #include <stdio.h> float *search(float(*p)[4],int n)//float(*p)[4]是数组指针,指向有4个float元素的二位数组的

C语言 指向结构体变量的指针

一个指向变量的指针表示的是占内存中起始位置 一个指向结构体的变量的指针表示的是这个结构体变量占内存中的起始位置,同样它也可以指向结构体变量数组 定义结构体变量的指针: //假设已有一个结构体名为Student struct Student *pStruct // 结构体类型 * 指针名; 通过指针来引用结构体中的成员,有三种方式 demo: 1 # include <stdio.h> 2 # include <stdlib.h> 3 /* 4 1.使用->引用结构体成员 5

EDKII CR宏:根据成员指针获取父结构体变量指针

核心提示: 1. CR宏 (Containing Record):根据成员指针获取父结构体变量指针 2. 0 指针的妙用. 在EDKII 的代码中有不少关于CR宏的使用,如 时钟中断处理函数CoreTimerTick. VOID EFIAPI CoreTimerTick ( IN UINT64 Duration ) { IEVENT *Event; ... if (!IsListEmpty (&mEfiTimerList)) { Event = CR (mEfiTimerList.Forward

C语言结构体传值--&gt;通过指针进行传值

结构体的传值方法一共有三种形式,通过传递结构体,传递指针,传递结构体自身参数.传递指针的方式与另外两种方法最大的不同就是传递的实际上是结构体的地址,在传值的过程中,指针需要进过初始化分配内存(也就是使用malloc()函数分配空间给指针) 来看看以下代码: 有两个点需要注意: (1)在方法设置类型的时候 是一个struct Book 类型,同时还是一个指针的类型,可以说(struct Book && pointer类型) (2)在代码的32,33行处,声明了一个struct Book &a

C# 获取变量的指针(IntPtr)

1. 获取数组的指针(IntPtr) 通过Marshal.UnsafeAddrOfPinnedArrayElement(Array,Int32)方法获得一个数组的第某个元素的内存地址. Array是数组,Int32是元素的索引,第一个元素是0. 例如: int[] ary; Intptr inp=Marshal..UnsafeAddrOfPinnedArrayElement(ary,0); Console.Writleline(inp.Tostring());//输出的就是一串数字,就是内存地址

一起talk C栗子吧(第一百四十三回:C语言实例--文件操作:基于文件指针三)

各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中详细地介绍了标准库中与文件操作相关的函数.不过,限于时间的原因,没有举具体的例子.还是那句老话,只说不练,不是我们的风格.因此,今天我们将通过具体的例子来说明如何使用文件指针来操作文件. 对文件的操作,还是使用我总结的文件操作三步曲比较好: p_file = fopen(file_name,"w"); //打开文件 re

C#的HttpModule中及Java的Servlet中成员变量乱用导致的不易重现的BUG

3年前写的在HttpModule中记录访问日志的代码,在最近使用日志数据分析登录账号的IP情况时,才发现了一个不易重现的BUG——日志中记录的登录账号出现串掉的情况.之所以这个时候才发现该问题,是因为部分用户的IP是固定的,但是日志里却出现了别人的IP.而之所以3年后才发现,是因为这块日志数据一直没怎么用过.回头想想,根本原因还是在用成员变量的时候没考虑到多线程的情况,或者说多用户同时访问的情况.因为HttpModule里的事件,是所有页面实例共用的. 问题代码: string dateBegi