指向结构体的指针数组,应用
来源:互联网 发布:修改apache配置文件 编辑:程序博客网 时间:2024/06/03 03:00
数组指针跟指针数组,差异看起来很小,结果却千差万别:
数组指针: struct param (*p)[100]
p+1 的结果是地址会增大 100个 sizeof(struct param),这种常用来去对二维数组进行位置的索引。
指针数组: struct param *p[100]
这里创建了一个100个struct param 指针的数组, p+1是指向数组里下一个struct param,可以用下标进行缩影: p[1]
指针数组的作用,大概是为了为了管理不是有序存储的数据而存在的吧,通过某种索引方法将数据集结在一起供程序统一处理。
在此将展示如何使用指针数组,并传递给某个函数让它去填充数据。
#include<stdio.h>#include<string.h>struct param{ int num; int tempnum; char *buff;};struct param params[6];char* buff1 = "buff1";char* buff2 = "buff2";char* buff3 = "buff3";char* buff4 = "buff4";char* buff5 = "buff5";char* buff6 = "buff6";int init(){ params[0].num = 1; params[0].buff = buff1; params[1].num = 2; params[1].buff = buff2; params[2].num = 3; params[2].buff = buff3; params[3].num = 4; params[3].buff = buff4; params[4].num = 5; params[4].buff = buff5; params[5].num = 6; params[5].buff = buff6; return 0;}int test(struct param **args){ args[0] = ¶ms[2]; printf("addr0 = %ld\n",&args[0]); //打印出地址 args[1] = ¶ms[4]; printf("addr1 = %ld\n",&args[1]); //打印出地址}int main(){ struct param (*p)[100]; printf("param addr0 = %p\n",&p); //打印出地址 printf("param addr1 = %p\n",&p+1); //打印出地址 init(); test( (struct param**) &p); printf("%d: %s\n",p[1]->num, p[1]->buff); return 0;}
阅读全文
0 0
- 指向结构体数组的指针应用
- 指向结构体的指针数组,应用
- 指向结构体数组的指针
- C语言指向结构体数组的指针
- C语言指向结构体数组的指针
- 指向结构体类型的指针数组做函数参数
- c语言指向结构体数组的指针
- 指向结构类型数组元素的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 指向结构体的指针
- 顺序表应用8:最大子段和之动态规划法
- 图像的逻辑变换
- 大数据处理中基于概率的数据结构
- 镜像
- leetcode 54. Spiral Matrix
- 指向结构体的指针数组,应用
- [NOI2010]:能量采集
- java -- 接口
- windows&mongodb
- 16讲 序列!序列!
- 幂方的最后一位
- C++中的默认函数与default和delete用法
- 数据结构实验之链表七:单链表中重复元素的删除
- 初级程序员只会Ctrl + C + V