指针地址和结构体中的数组(代码片段)

coding码场 coding码场     2022-11-10     282

关键词:

看看指针和结构体中的数组怎么用的,很基础的,搞清楚一点好。

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <ctype.h>
#include <dirent.h>
#include <sys/stat.h>


typedef struct tsmRECT_S 
    unsigned int  s32X;
    unsigned int  s32Y;
    unsigned int  u32Width;
    unsigned int  u32Height;
 RECT_S;
// 输出头文件保存数据格式
typedef struct _BMP_FORMAT_T 
	uint32_t offset; // bmp 在bmp.bin的偏移量
	uint32_t width;  // bmp 宽度
	uint32_t height; // bmp 高度
	uint32_t size;   // bmp 数据大小
	RECT_S  rect[5];
BMP_FORMAT_T;


BMP_FORMAT_T  tt[10] = 0;

main()

	BMP_FORMAT_T *pF;
	
	tt[5].offset = 1;
	tt[5].width = 2;
	tt[5].height = 3;
	tt[5].size = 4;
	tt[5].rect[0].s32X = 11;
	tt[5].rect[0].s32Y = 12;
	tt[5].rect[0].u32Width = 13;
	tt[5].rect[0].u32Height = 14;
	tt[5].rect[1].s32X = 15;
	tt[5].rect[1].s32Y = 16;
	tt[5].rect[1].u32Width = 17;
	tt[5].rect[1].u32Height = 18;	
	pF = &tt[5];
	printf("pF 0x%x\\n", pF);
	printf("pF->offset %d\\n", pF->offset);	
	printf("pF->width %d\\n", pF->width);
	printf("pF->rect[0] %d\\n", pF->rect[0]);
	printf("pF->rect[1] %d\\n", pF->rect[1]);
	printf("**************************************\\n");
	printf("&(pF->offset) 0x%x\\n", &(pF->offset));	
	printf("&(pF->width) 0x%x\\n", &(pF->width));
	printf("&(pF->size) 0x%x\\n", &(pF->size));
	printf("&(pF->rect) 0x%x\\n", &(pF->rect));
	printf("&(pF->rect[1]) 0x%x\\n", &(pF->rect[1]));
	printf("&(pF->rect[2]) 0x%x\\n", &(pF->rect[2]));
	printf("&(pF->rect[3]) 0x%x\\n", &(pF->rect[3]));

运行结果对比一下:

 pf是一个指针,pf箭头指过去就是取到对应内存的内容了,“pf->”这样就是pf指针带箭头了,如果要取对应那个变量的地址怎么办呢,其实可以看到啊!pf的值就是指针的起始值,看它是不是跟所指结构体的第一个变量的地址是一样的?果然是一样的,成员少,小推一下就知道地址是多少,成员多了就用指针先指过去,然后通过取地址符合&来获取它的地址。

很基础的,看不懂的就要加油!

第三次作业(代码片段)

一.学习要点。指针和数组有很多类似的地方,如都可以存储多个数据、都可以对指针或结构中的数据进行引用等。但也有一些不同,主要的区别是存储数据的类型。虽然都可以存储多个数据但是数组中存储的数据类型是一样的... 查看详情

c语言结构体(结构体中嵌套二级指针|为结构体内的二级指针成员分配内存|释放结构体内的二级指针成员内存)(代码片段)

文章目录一、结构体中嵌套二级指针1、结构体中嵌套二级指针类型声明2、为结构体内的二级指针成员分配内存3、释放结构体内的二级指针成员内存二、完整代码示例一、结构体中嵌套二级指针1、结构体中嵌套二级指针类型声... 查看详情

c基础结构体(代码片段)

...的赋值八、箭头操作符->的使用九、指向结构体数组的指针十、结构体中的数组成员和指针成员十一、在堆中创建结构体十二、结构体作为函数的参数12.1将结构体作为函数的参数12.2将结 查看详情

结构体中二级指针的赋值和释放(代码片段)

...的格式存放,但是数据中有一个字符串数组,也就是二级指针,牵涉到开辟空间和释放的问题,可能是太基础了,查了很久每查到资料,后来自己写出来了。记录以下心得:见指针就开辟空间,开辟完成后依次对应回收 代码... 查看详情

c++基础3(函数指针结构体)(代码片段)

...调用值传递函数的常见样式函数的声明函数的分文件编写指针指针的基本概念指针变量的定义和使用指针所占内存空间空指针和野指针const修饰指针指针和数组指针和函数指针、数组、函数结构体结构体基本概念结构体定义和使... 查看详情

c和指针之结构体和联合体(代码片段)

...的数据元素的集合,它的每个元素都是通过下标引用或者指针间接访问来选择的;结构也是一些值的集合,这些值称为它的成员(member),结构体的每个成员可以是不同类型的数据,要访问结构体中的数据,是通过成员名来访问的... 查看详情

c语言结构体指针详解(代码片段)

结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针。指向结构体变量的指针前面我们通过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法之外还可以使用指针。前面讲过,&s... 查看详情

结构体中定义函数指针(代码片段)

 结构体指针变量的定义定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct结构体标识符  成员变量列表;…;struct结构体标识符*指针变量名;变量初始化:struct结构体标识符变量名=初始化值1,初... 查看详情

用lambda表达式按照结构体中的一个字段来排序一个结构体数组(代码片段)

假如结构体如下:structitem inta; stringb;;代码:#include<algorithm>#include<vector>usingnamespacestd;//创建一个结构体数组vector<item>arr=3,"c",1,"a",2,"b";//使用lambda表达式来定义比较函数autocompare=[](itemt1,itemt2) returnt1.a<t2.a;//按照a字... 查看详情

c语言结构体(结构体中嵌套一级指针|分配内存时先为结构体分配内存然后再为指针分配内存|释放内存时先释放指针成员内存然后再释放结构头内存)(代码片段)

文章目录一、结构体中嵌套一级指针1、声明结构体类型2、为结构体变量分配内存(分配内存时先为结构体分配内存然后再为指针分配内存)3、释放结构体内存(释放内存时先释放指针成员内存然后再释放结构头内存)二、完整代码... 查看详情

c语言学习笔记整理(代码片段)

...储1.3大小端字节序介绍1.4浮点型在内存中的存储解析二.指针详细介绍2.1字符指针2.2指针数组2.3数组指针2.4数组传参和指针传参2.5函数指针2.6函数指针数组2.7指向函数指针数组的指针2.8回调函数三.字符函数和字符串函数四.结构体... 查看详情

c语言中的指针,数组和结构体结合的一个经典案例(代码片段)

一你真正懂了C语言了吗?  很多人刚把c语言用了两年,就以为很懂,等遇到稍微深层次一点的问题,就卡住了。这里,有一个问题,可以考察你对这三者理解如何。二一个例子: #include<stdio.h>typedefunsignedcharuint8_t... 查看详情

用指针访问结构数组(代码片段)

前面我们已经学习过结构指针和结构数组的概念,我们知道可以用指针访问和引用数组,由此可知也可以用指针访问结构数组。即一个指针变量可以访问普通的数组,也可以访问结构数组。typedefstructstudentcharID[10];charn... 查看详情

kernel中的函数指针(代码片段)

经常会看到这类的结构体:这个结构体中有几个函数指针,这种方式的好处,可以有多种具体的函数实现,但是,这样就统一了接口structaddress_space_operationsint(*writepage)(structpage*page,structwriteback_control*wbc);int(*readpage)(structfile*,structpa... 查看详情

c语言指针进阶(下)(代码片段)

提示:本篇深度剖析数组和指针的知识点,并且列举多种例子来说明sizeof和strlen的用法接下来一起来学习吧👻👻文章目录前言九、数组和指针1.透彻理解整型数组图解:2.透彻理解字符数组(区分sizeof和strlen)重点:区分size... 查看详情

指针与数组(代码片段)

指针与数组C指向数组的指针C++指向数组的指针指针和地址每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。#include<iostream>... 查看详情

uva122二叉树的实现和层次遍历(bfs)(代码片段)

题目见紫书6.3.2二叉树的层次遍历1.二叉树的实现:a.用指针实现:用结构体记录结点,利用指针访问结点其中变量left,right的值new的返回值都是地址/*二叉树的结点定义和操作*///结点类型structNodeboolhave_value;//是否被赋值过intv;//... 查看详情

指针和数组(代码片段)

指针: 指针在本质上是一个变量;指针需要占用一定的内存空间;指针用于保存内存地址的值*号的意义: 在指针声明时,*号表示所声明的变量为指针; 在指针使用时,*号表示取指针所指向的内存空间中的值; char... 查看详情