基于结构体与指针的详解

14577mao

14577mao

2016-02-19 08:57

今天图老师小编给大家展示的是基于结构体与指针的详解,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!
结构指针变量:结构指针变量的说明和使用一个指针变量用来指向一个结构变量时
结构指针变量中的值是所指向的结构变量的首地址。通过结构指针即可访问该结构变量,这与数组元素的指针和函数指针的情况是相同的。
结构指针变量说明的一般形式为:
struct 结构名 * 结构指针变量名
例如: struct stu *pstu; 
其访问的一般形式为:
(*结构指针变量).成员名 : (*pstu).num
或为:
结构指针变量-成员名  :pstu-num
应该注意(*pstu)两侧的括号不可少, 因为成员符“.”的优先级高于“*”。如去掉括号写作*pstu.num则等效于*(pstu.num),这样,意义就完全不对了。 
结构变量.成员名
(*结构指针变量).成员名
结构指针变量-成员名
这三种用于表示结构成员的形式是完全等效的。
结构数组指针变量:结构指针变量可以指向一个结构数组, 这时结构指针变量的值是整个结构数组的首地址。 结构指针变量也可指向结构数组的一个元素,这时结构指针变量的值是该结构数组元素的首地址。
设ps为指向结构数组的指针变量,则ps也指向该结构数组的0号元素,ps+1指向1号元素,ps+i则指向i号元素。 这与普通数组的情况是一致的。
代码如下:

#include stdio.h
int main(void)
{
    int i;
    struct student
    {
        long int num;
        int      age;
        char*    name;
    }st[3]={{198,19,"zhangsan"}, {199,18,"lisi"},{200,19,"wangwu"}};  
    struct student*   p;
    p=st;
    printf("/n/n    NO.    age    name   /n");
    for(  ;p=st+2;p++)
        printf("  %ld    %d   %s/n",p-num,p-age,p-name);
    getch();
    printf("/n/n    NO.    age    name   /n");
    for( p=st ;p=st+2;p++)
       printf("  %ld    %d   %s/n",(*p).num,(*p).age,(*p).name);
    getch();
    return 0;
}
展开更多 50%)
分享

猜你喜欢

基于结构体与指针的详解

编程语言 网络编程
基于结构体与指针的详解

深入分析C语言中结构体指针的定义与引用详解

编程语言 网络编程
深入分析C语言中结构体指针的定义与引用详解

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

解析结构体的定义及使用详解

编程语言 网络编程
解析结构体的定义及使用详解

基于AJAX的动态树型结构的设计与实现

Web开发
基于AJAX的动态树型结构的设计与实现

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

基于C语言EOF与getchar()的使用详解

编程语言 网络编程
基于C语言EOF与getchar()的使用详解

基于Sizeof与Strlen的区别以及联系的使用详解

编程语言 网络编程
基于Sizeof与Strlen的区别以及联系的使用详解

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MAC系统Apple TV如何设置环绕立体声

MAC系统Apple TV如何设置环绕立体声

JavaScript中的Window窗口对象

JavaScript中的Window窗口对象
下拉加载更多内容 ↓