C语言结构体初始化和结构体指针
2016-12-21 22:33
351 查看
结构体初始化
#include <stdio.h> //结构体的声明和定义方法 //1.声明和定义分离 struct weapon{ char name[20]; int atk; int price; }; //声明 //定义 struct weapon weapon_1; //==================================== // //2.同时进行声明和定义,只适用于简单的程序 struct weapon { char name[20]; int atk; int price; }weapon_1;
结构体的访问
#include <stdio.h> //结构体的声明 struct weapon{ char name[20]; int atk; int price; }; int main() { //结构体的初始化 struct weapon weapon_1 = {"weapon_name",100,200}; //结构体的访问 //weapon_1.name printf("%s,%d\n",weapon_1.name,weapon_1.price); //结构体数组,数组元素是结构体 //定义一个结构体数组 //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);//访问结构体数组索引0的name,索引1的atk //或 //建议使用这种方式,更直观 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);//访问结构体数组索引0的name,索引1的atk return 0; }
结构体指针
#include <stdio.h> //结构体的声明 struct weapon{ char name[20]; int atk; int price; }; int main() { //结构体的初始化 struct weapon weapon_1 = {"weapon_name",100,200}; //结构体指针 struct weapon * w;// w是指向struct weapon 类型的指针 w = &weapon_1;// w 指向weapon_1 //1.(*w).name // 括号不能省,因为.的优先级比()的优先级高 //2.w->name // 结构体中C语言允许使用指向运算符-> printf("%s,%s\n",(*w).name,w->name);//两种方式等价 struct weapon weapon_2[2] = {{"weapon_name1",50,100},{"weapon_name2",100,200}};; struct weapon * p; p = weapon_2;//p存放weapon_2中第一个结构体的地址,p->name与weapon_2[0].name等价 printf("%s\n",p->name); p++;//p指向weapon_2第二个结构体,等价于weapon_2+1,weapon_2[1] printf("%s\n",p->name); return 0; }
相关文章推荐
- C语言中结构体的三种初始化方式以及结构体作为传参传递
- C语言中结构体的初始化
- 浅谈C语言中结构体的初始化
- C语言结构体初始化的四种方法
- C语言结构体初始化的三种方法
- C语言结构体初始化的三种方法
- c语言结构体----初始化bug1
- 测试一下C语言结构体初始化
- 【转载】c语言结构体指针初始化
- C语言一维数组、二维数组、结构体的初始化
- <C语言>结构体的各种定义、初始化、操作代码实例----注释详解
- C语言中结构体的初始化
- 浅谈C语言中结构体的初始化
- C语言结构体指针初始化!
- 我也要学C语言-第十九章:结构体的定义和初始化
- C语言练习 结构体的初始化
- C语言中结构体的初始化
- C语言中结构体(struct)乱序初始化
- C语言中结构体的初始化
- C语言中结构体的初始化