#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语言学习--结构体指针的更多相关文章

  1. go语言初始化结构体指针

    go语言初始化结构体指针 head:=&ListNode{} 或者 head:=new(ListNode)

  2. go语言学习-结构体

    结构体 go语言中的结构体,是一种复合类型,有一组属性构成,这些属性被称为字段.结构体也是值类型,可以使用new来创建. 定义: type name struct { field1 type1 fie ...

  3. go语言的结构体指针

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型.   结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.   结构体表示一项记录,比 ...

  4. c语言中结构体指针

    1.指向结构体的指针变量: C 语言中->是一个总体,它是用于指向结构体,如果我们在程序中定义了一个结构体,然后声明一个指针变量指向这个结构体.那么我们要用指针取出结构体中的数据.就要用到指向运 ...

  5. C语言定义结构体指针数组并初始化;里面全是结构体的地址

    #include <stdio.h> #include <string.h> struct tells;//声明结构体 struct info { char *infos; } ...

  6. ios开发中的C语言学习—— 结构体简介

    在开发过程中,经常会需要处理一组不同类型的数据,比如学生的个人信息,由姓名.年龄.性别.身高等组成,因为这些数据是由不同数据类型组成的,因此不能用数组表示,对于不同数据类型的一组数据,可以采用结构体来 ...

  7. 将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. ...

  8. 【C语言入门教程】7.3 结构体指针的定义和引用

    C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针 ...

  9. 01.C语言关于结构体的学习笔记

    我对于学习的C语言的结构体做一个小的学习总结,总结如下: 结构体:structure 结构体是一种用户自己建立的数据类型,由不同类型数据组成的组合型的数据结构.在其他高级语言中称为记录(record) ...

  10. c语言结构体指针初始化

    今天来讨论一下C中的内存管理. 记得上周在饭桌上和同事讨论C语言的崛起时,讲到了内存管理方面 我说所有指针使用前都必须初始化,结构体中的成员指针也是一样 有人反驳说,不是吧,以前做二叉树算法时,他的左 ...

随机推荐

  1. 三步快速搭建Typora图床(SM.MS+PicGo)

    三步快速搭建Typora图床(基于SM.MS+PicGo) 前言 在有些同学使用Typora的过程中,会发现Typora不像Word一样,在文档脱离本机后依然正常显示图片,自己的tyopora文件在发 ...

  2. java中的数值运算

    本文主要是掌握java中的整除和取模的运算: public class MathOperate { public static void main(String[] args) { // 取整运算 S ...

  3. 【机器学习】李宏毅——Anomaly Detection(异常检测)

    异常检测概述 首先要明确一下什么是异常检测任务.对于异常检测任务来说,我们希望能够通过现有的样本来训练一个架构,它能够根据输入与现有样本之间是否足够相似,来告诉我们这个输入是否是异常的,例如下图: 那 ...

  4. Windows上使用QEMU创建银河麒麟ARM64虚拟机完全手册

    "好记性不如烂笔头." -- 张溥 0x00 大纲 目录 0x00 大纲 0x01 前言 0x02 物料准备 0x03 安装 QEMU 0x04 创建虚拟磁盘 0x05 安装麒麟系 ...

  5. 速记·python 123章

    第一.二.三章 初识python 1.1 Python的概述 开发环境:Python 开发工具:IDLE(Python自带) 1.python的特点:代码简单.开发速度快.容易学习:有丰富的库:&qu ...

  6. Vue+ElementUI+Springboot实现前后端分离的一个demo

    目录 1.前期准备 2.创建一个vue项目 3.vue前端 4.java后端 5.启动 5.1.启动vue项目 5.2.启动后端 6.效果 7.总结 8.参考资料 vue官方文档:介绍 - Vue.j ...

  7. [IOI2016] shortcut

    有显然的 \(O(n^3)\) 做法,可以获得 \(38pts\).(退火在洛谷上能跑 \(75pts\)) 答案具有单调性,考虑二分一个 \(M\) 并判断.列出 \(i\) 到 \(j\) 的距离 ...

  8. Codeforces Round #842 (Div. 2) A-D

    比赛链接 A 题意 给一个数 \(k\) 找到最大的 \(x\) ,满足 \(1 \leq x < k\) 且 \(x!+(x-1)!\) 是 \(k\) 的倍数. 题解 知识点:数学. 猜测 ...

  9. vulnhub靶场之FUNBOX: UNDER CONSTRUCTION!

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Funbox: Under Construction!,下载地址:https://download.vulnhub.com/funbox/Fun ...

  10. windows安装wordcloud遇到的坑汇总

    pip install wordcloud报错,缺少visual studio包 不要偷懒,一定要从报错的地方去下载完整版本 然后安装c++ 重启后就不会报错了