指向结构体变量的指针叫做结构体指针:

typedef struct {

  int num;

  char name[30];    // char *name; 程序会崩溃,*name本身是指针,没有什么空间的概念,只是指向另一个空间,并且另一空间的值是常量,不能被修改.

  float score;

  char gender;

} Student;

Student stu ={21,"luoshuai",76.5,'m'};

Student *s1= &stu; // 注意这里需要使用到&符号来获取结构变量的地址.

// 结构体指针的写法

printf("%s\n",s1->name);  //指针结构变量 可以使用指针名称-> 元素变量名

printf("%s\n",(*s1).name);

//原来的结构体写法

printf("%s\n",stu.name);

2.结构体数组与指针的关系:

Student stu1 = {

  {21,"luoshuai",76.5,'m'},

  {12,"luoting",87.9,'w'},

  {25,"luoteng",95.7,'w'},

  {9,"luohuahua",68.8,'m'},

  {67,"liruoxuan",90.0,'w'}

};

Student *s2 = stu1;            // 注意这是是没有&

printf("%s\n",s2[1].name);        //输出luoting

printf("%s\n",(s2+1)->name);     //输出 luoting

printf("%s\n",(s2+4)->num );        // 67

3.结构指针作为函数参数使用

void printStudent( Student *stu, int count){   //注意这里传入*stu不是*stu[ ]

  for(int i = 0 ;i < count ;i ++){

    printf("学号:%d\n姓名:%s\n",(stu+i)->num,(stu+i)->name);

  }

}

C语言基础09的更多相关文章

  1. Java入门 - 语言基础 - 09.循环结构

    原文地址:http://www.work100.net/training/java-loop.html 更多教程:光束云 - 免费课程 循环结构 序号 文内章节 视频 1 概述 2 while循环 3 ...

  2. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  3. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  4. Object Pascal 语言基础

    Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...

  5. C语言基础(转载自大海笔记)

    # C语言基础2015年03月26日10:04:411.    语言排行榜C——java——objective-C2.    进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...

  6. 2008技术内幕:T-SQL语言基础

    2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLF ...

  7. (cljs/run-at (->JSVM :browser) "语言基础")

    前言  两年多前知道cljs的存在时十分兴奋,但因为工作中根本用不上,国内也没有专门的职位于是搁置了对其的探索.而近一两年来又刮起了函数式编程的风潮,恰逢有幸主理新项目的前端架构,于是引入Ramda. ...

  8. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB

    走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...

  9. 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数

    Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...

随机推荐

  1. 小希的迷宫(HDU 1272 并查集判断生成树)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  2. basename $0的用法

    basename 从文件名中去掉路径信息, 只打印出文件名. 结构 basename $0 可以让脚本知道它自己的名字, 也就是, 它被调用的名字. 可以用来显示用法信息, 比如如果你调用脚本的时候缺 ...

  3. linux中find指令与grep命令的组合使用

    linux下find与grep管道命令的组合使用: 一.使用find与grep 1. 查找所有".h"文件(非组合命令) find /PATH -name "*.h&qu ...

  4. HttpApplication处理对象与HttpModule处理模块 (第三篇)

    一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型为HttpApplica ...

  5. Mysql.Data的连接驱动 .net 的源码竟然在git了

    如标题 上链接:https://github.com/mysql/mysql-connector-net

  6. cf479E Riding in a Lift

    E. Riding in a Lift time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. Windows多线程同步系列之一-----互斥对象

    多线程同步之互斥对象 作者:vpoet mail:vpoet_sir@163.com   对卖票问题进行线程间同步,本文将在上文的基础上,使用互斥对象对线程进行同步. 首先看看windows API ...

  8. 【转】HDMI控制与组态剖析

    HDMI能够称霸为王者之尊吗?目前消费者陷入的困境就是Audio/Video的连接线数量过度庞大,而HDMI最大卖点之一就是可使用单一的连接线完全取代众多的影音连接线,简洁又方便.缺点是技术版本变动太 ...

  9. Unity position和localposition

    1. position是根据世界原点为中心 2. localPosition是根据父节点为中心,如果没有父节点,localpositon和position是没有区别的 3.选中一个物体左上角Globa ...

  10. STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)(转)

    向量(vector) <vector> 连续存储的元素<vector> Vector<int>c; c.back()    传回最后一个数据,不检查这个数据是否存在 ...