Dotcpp  >  编程教程  >  C语言结构体和共用体  >  结构体指针及具体操作

结构体指针及具体操作

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

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


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

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语言中的基本输入输出
第五章 C语言运算符和表达式
第六章 C语句和程序流
第七章 C语言函数
第八章 C语言数组
第九章 C语言指针
第十章 C语言结构体和共用体
第十一章 C语言文件操作
第十二章 C语言预处理
第十三章 C语言位运算
第十四章 附录
Dotcpp在线编译      (登录可减少运行等待时间)