C语言学习--结构体指针
#include<stdio.h>
#include<string.h> //结构体指针: 指针的类型为结构体
typedef struct nodeData
{
int a;
char b[3];
}node; int main()
{ //结构体数组, 数组里面的每个元素都是结构体
node n[3] = {
{1,"aaa"},
{2,"bbb"},
{3,"ccc"},
}; //定义一个结构体指针, p1是结构体数组的首元素的地址
node *p1 = n;//数组名, 就是首元素的地址 printf("%d, %s\n", p1->a, p1->b);//p1是一个结构体指针, 指向的是结构体数组的第一个元素{1,"aaa"} //定义一个结构体指针数组: 这个数组里面的所有元素都是结构体指针 node *parr[3] = {&n[0],&n[1],&n[2]}; // 等效于node *parr[3] = {n,&n[1],&n[2]}; //parr[1]是指针数组的第二个元素&n[1], &n[1]代表的是结构体数组第二个元素的地址, 第二个元素是一个结构体,所以&n[1] 是一个结构体指针, 结构体指针访问元素的方式就是->
printf("%d", parr[1]->a); return 0;
}
#include<stdio.h>
#include<string.h> //结构体指针: 指针的类型为结构体
typedef struct nodeData
{
int a;
char b[3];
}node; int main()
{
node n = {1,"shu"};
printf("%d , %s \n", n.a, n.b); node *nPoint = &n; //结构体指针访问结构体里面的内容用->
printf("%d \n", nPoint->a);
printf("%s\n", nPoint->b); }
#include<stdio.h>
#include<string.h> //结构体指针: 指针的类型为结构体
typedef struct nodeData
{
int a;
char b[3];
}node; int main()
{
node n = {1,"shu"};
printf("%d , %s \n", n.a, n.b); node *nPoint = &n; //结构体指针访问结构体里面的内容用->
printf("%d \n", nPoint->a);
printf("%s\n", nPoint->b);
//通过指针修改结构体里面的内容
nPoint -> a = 20;
printf("%d \n", nPoint->a);
printf("%s\n", nPoint->b); }
#include<stdio.h>
#include<string.h> //结构体指针: 指针的类型为结构体
typedef struct nodeData
{
int a;
char b[3];
}node; int main()
{ //结构体数组, 数组里面的每个元素都是结构体
node n[3] = {
{1,"aaa"},
{2,"bbb"},
{3,"ccc"},
}; //定义一个结构体指针, p1是结构体数组的首元素的地址
node *p1 = n;//数组名, 就是首元素的地址 printf("%d, %s\n", p1->a, p1->b); //结构体指针偏移
printf("%d\n", (p1+2)->a);
printf("%s\n",(p1+2)->b);// p1是结构体指针, p1+2就是偏移两个,指向{3,"ccc"} //也可以用解引用的方式访问, 解引用就是访问指针指向的内容
printf("%d\n", (*p1).a);//*p1解引用出来就是{1,"aaa"}, 这样就可以用.的方式访问,得到的就是a, 等价于p1->a
printf("%s\n", (*p1).b); return 0;
}
C语言学习--结构体指针的更多相关文章
- go语言初始化结构体指针
go语言初始化结构体指针 head:=&ListNode{} 或者 head:=new(ListNode)
- go语言学习-结构体
结构体 go语言中的结构体,是一种复合类型,有一组属性构成,这些属性被称为字段.结构体也是值类型,可以使用new来创建. 定义: type name struct { field1 type1 fie ...
- go语言的结构体指针
Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比 ...
- c语言中结构体指针
1.指向结构体的指针变量: C 语言中->是一个总体,它是用于指向结构体,如果我们在程序中定义了一个结构体,然后声明一个指针变量指向这个结构体.那么我们要用指针取出结构体中的数据.就要用到指向运 ...
- C语言定义结构体指针数组并初始化;里面全是结构体的地址
#include <stdio.h> #include <string.h> struct tells;//声明结构体 struct info { char *infos; } ...
- ios开发中的C语言学习—— 结构体简介
在开发过程中,经常会需要处理一组不同类型的数据,比如学生的个人信息,由姓名.年龄.性别.身高等组成,因为这些数据是由不同数据类型组成的,因此不能用数组表示,对于不同数据类型的一组数据,可以采用结构体来 ...
- 将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct
https://groups.google.com/forum/#!topic/golang-nuts/JkvR4dQy9t4 https://golang.org/misc/cgo/gmp/gmp. ...
- 【C语言入门教程】7.3 结构体指针的定义和引用
C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针 ...
- 01.C语言关于结构体的学习笔记
我对于学习的C语言的结构体做一个小的学习总结,总结如下: 结构体:structure 结构体是一种用户自己建立的数据类型,由不同类型数据组成的组合型的数据结构.在其他高级语言中称为记录(record) ...
- c语言结构体指针初始化
今天来讨论一下C中的内存管理. 记得上周在饭桌上和同事讨论C语言的崛起时,讲到了内存管理方面 我说所有指针使用前都必须初始化,结构体中的成员指针也是一样 有人反驳说,不是吧,以前做二叉树算法时,他的左 ...
随机推荐
- SQLMap进阶:参数讲解
1.--level 5:探测等级 -level 5参数代表需要执行的测试等级为5,一共有5个测试等级1~5,可不加level,不加等级参数默认是1.SQLMap使用的Payload可以在xml/poy ...
- 【ASP.NET Core】MVC操作方法如何绑定Stream类型的参数
咱们都知道,MVC在输入/输出中都需要模型绑定.因为HTTP请求发送的都是文本,为了使其能变成各种.NET 类型,于是在填充参数值之前需 ModelBinder 的参与,以将文本转换为 .NET 类型 ...
- 【转载】WebBrowser控件的常用方法、属性和事件
1. 属性 属性 说明 Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch).如果在宿主对象中自动化对象无效,这个程序将返回Web ...
- iOS 使用xcode11新建项目
1. 首先打开Xcode11,然后使用command + shift + n 快捷键创建一个新的工程 选择 Single View App 完成之后点击next 2. 会弹出 Choose opt ...
- vue3+quasar+capacitor开发多平台项目,使用cordova和capacitor插件(支持所有前端框架)
先看文档 框架文档地址:https://quasar.dev/start/quasar-cli 创建项目 npm init quasar 运行与打包命令 npx quasar dev npx quas ...
- 文盘Rust -- rust 连接云上数仓 starwift
作者:京东云 贾世闻 最近想看看 rust 如何集成 clickhouse,又犯了好吃懒做的心理(不想自己建环境),刚好京东云发布了兼容ck 的云原生数仓 Starwfit,于是搞了个实例折腾一番. ...
- 复杂环境下ocr与印章识别技术理解及研发趋势
引言 随着社会经济的发展,印章作为企事业单位.社会团体.政府部门乃至国家的一种具有法律意义的标志和证据,在现代社会生活中发挥着重要作用.随着现代商务活动的不断发展,企业在业务开展的过程中通常会涉及大量 ...
- 了解 Transformers 是如何“思考”的
Transformer 模型是 AI 系统的基础.已经有了数不清的关于 "Transformer 如何工作" 的核心结构图表. 但是这些图表没有提供任何直观的计算该模型的框架表示. ...
- hashlib加密、subprocess、logging日志模块
1.hashlib加密模块 1.加密:将明文数据处理成密文数据,让人无法看懂 2.为什么加密:保证数据的安全 3.如何判断数据是否加密:如果是一长串没有规律的字符串(数字.字母.符号)那么数据被加密 ...
- SpringBoot 2.x 在Tomcat8上无法运行,报无法访问错误
非法访问:此Web应用程序实例已停止.无法加载[].为了调试以及终止导致非法访问的 这仅是我的一个Filter重写的时候没有重写他的其他两个方法,导致我在Tomcat8上不能运行,但在Tomcat9上 ...