指向结构体变量的指针变量

#include<stdio.h>
struct weapon
{
    char name[20];
    int atk;
    int price;
};

int main()
{
    struct weapon weapon_1 = {"weapon_name",100,200};
    printf("%s  %d\n",weapon_1.name,++weapon_1.price);

    struct weapon * w;
    w = &weapon_1;
    printf("name = %s  name = %s\n",(*w).name,w->name);//w->name weapon_1.name

    struct weapon weapon_2[2] = {{"weapon_name1",50,100},{"weapon_name2",100,200}};
    printf("%s  %d\n",weapon_2[0].name,weapon_2[1].atk);

    struct weapon * p;
    p = weapon_2;//p->name weapon_2[0].name
    printf("%s\n",p->name);
    p++;//weapon_2 +1 weapon_2[1]
    printf("%s\n",p->name);
    return 0;
}

运行结果:
注:

1、weapon_1.name 的三种写法。
2、在数组中,p = weapon_2默认为数组的第一个地址。
3、p++为地址+1.

猜你喜欢

转载自blog.csdn.net/liangllhahaha/article/details/79372415