结构体指针及具体操作

点击打开在线编译器,边学边练

结构体指针即指向结构体的指针 


当一个指针用来指向一个结构体变量时,称之为结构体指针变量。结构体指针变量中的值是所指向的结构变量的首地址,通过结构指针即可访问该结构变量。这与数组指针和函数指针的情况是相同的。结构 体指针变量定义的一般形式为: 
struct 结构类型名 *结构指针变量名

定义之后,就可以像之前学过的指针一样,将结构体类型的变量赋值给这个指针即可,后面就可以用这个指针间接的访问结构体了,需要注意的是,不用于结构体变量用点(.)来访问成员的方法,结构体指针是通过箭头(->)来访问的,下面给大家一个完整的例子来学习

#include<stdio.h>
struct address
{
        char name[30];
        /*姓名,字符数组作为结构体中的成员 */
        char street[40]; /*街道*/
        unsigned long tel; /*电话,无符号长整型作为结构体中的成员 */
        unsigned long zip; /*邮政编码*/
};
int main()
{
    struct address A[3]={{"Zhang","Road NO.1",111111,4444},
    {"Wang"," Road NO.2",222222,5555},
{"Li"," Road NO.3",333333,6666}};
    struct address *p;
    p=&A[0];
    printf("%s %s %u %u\n",p->name,p->street,p->tel,p->zip);
    return 0;    
}


大家可以亲自上机,理解代码并试验!


接着个程序,抛出一个问题,如果想通过循环,循环三次来输出全部A数组中的成员内容,如何通过P指针实现呢?


本文固定URL:https://www.dotcpp.com/course/608

第一章 C语言的过去与未来
第二章 C语言快速入门
第三章 C语言的数据类型
第四章 C语言中的基本输入输出
第五章 运算符和表达式
第六章 C语句和程序流
第七章 函数
第八章 数组
第九章 指针
第十章 复合结构
第十一章 文件操作
第十二章 预处理
第十三章 位运算
Dotcpp在线编译      (登录可减少运行等待时间)