空指针与结构体指针赋值操作
1、测试代码:
#include<stdio.h>
#include<string.h>
struct DATA
{int year;int month;int day;
};
struct TEST
{int a;char b;
};
int main(void)
{struct DATA data1;void *p;data1.year = 2020;data1.month = 4;data1.day = 2;p = &data1;struct DATA *data2;data2 = p ;printf("data2 : year =%d, month =%d, day =%d\r\n ",data2->year,data2->month,data2->day);data2->day = 5;printf("data2 : year =%d, month =%d, day =%d\r\n ",data2->year,data2->month,data2->day);printf("data1 : year =%d, month =%d, day =%d\r\n ",data1.year,data1.month,data1.day);struct TEST *test;test = p ;printf("test : a =%d, b=%d\r\n",test->a,test->b);printf("test : a =%d, b=%d\r\n",test->a,*(test+1));printf("test : a =%d, b=%d c=%d\r\n",test->a,*(test+1),*(test+2));return 0 ;
}
2、输出结果:
3、结论:
1、空指针可以被/给任何类型的指针赋值,指针赋值的实质是传递地址。
2、同类型的结构体指针可以直接赋值也可以通过空指针作为中转。
3、不同类型的结构体指针可以通过空指针的中转赋值,如果不同结构体的成员的类型和数量相同还好,如果不同,虽然能够编译过,但得到的值需谨慎对待。
空指针与结构体指针赋值操作相关推荐
- C语言对结构体进行赋值操作
C语言对结构体进行赋值操作 一.说明 二.环境 三.代码 四.运行 一.说明 定义一个结构体: 并对其进行初始化操作,赋值操作,打印1.注意, struct 定义的位置可以在main函数的外边2.用的 ...
- c语言如何将值赋给结构体指针,C语言给结构体指针赋值
<C语言给结构体指针赋值>由会员分享,可在线阅读,更多相关<C语言给结构体指针赋值(6页珍藏版)>请在人人文库网上搜索. 1.指向结构体的指针 在C语言中几乎可以创建指向任何类 ...
- 使用offsetof对结构体指针偏移操作
题目来自于COMP20003 Tutorial 2: Program m ing Challenge 2.2 The technology stack at Hidebound Inc. uses a ...
- C语言中的结构体指针赋值问题
在对数组或者接收到的数据进行赋值时,往往因为结构体中含有指针而无法获取接收到的数据,那么如何才能获取结构体中的指针指向的内容呢?这就涉及到两个部分的内容. 1.通过memcpy()赋值或者对数据进行结 ...
- C语言中struct typedef 以及结构体指针用法
struct .typedef以及结构体指针用法 typedef用法 结构体指针用法 结构体初始化 typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别 ...
- c语言指针赋null,构造体指针赋值为NULL, 不被执行
结构体指针赋值为NULL, 不被执行 最近用c实现基本数据结构,用的codeblocks+gcc.二叉树这里出了点问题,请高手指点一下: 实现的是基本的二叉树操作:初始化,左插入,又插入,左删除,右删 ...
- golang结构体指针
1.由于结构体是值类型,在方法传递时希望传递结构体地址,可以使用结构体指针完成,结合new(T)函数创建结构体指针 peo := new(People) //因为结构体本质是值类型,所以创建结构体指针 ...
- c语言的结构体与指针的区别,C语言 结构体与结构体指针用法总结
在C语言开发中,结构体用到的机会很多.所谓结构体,就是定义一种里面包含多种元素的变量. 我们来看一个简单的例子.比如你想定义一个书名列表然后为每本书创建书名和作者作为书的信息.结构体变量定义如下: s ...
- 【C/C++】指针的思考与注意:空指针,指针赋值,void*指针,二级指针,结构体指针,指向同一地址的多个指针释放问题
部分参考自:https://blog.csdn.net/u012351051/article/details/96753703 1. 啥是指针 指针是地址,而不是具体的标量值,这是指针的精髓,不管是一 ...
最新文章
- 前端求职-htmlcss
- 学python找什么工作-学Python能找到什么工作?这4种工作最热门!
- 李开复:年轻人该比谁更拼命吗?
- 【Flink】Flink 单个任务 多个流的消费同一个topic的时候其中一个流卡死 不消费
- 【vim新手心得】最常用快捷键、编辑器vim插件使用心得(VsVim、IdeaVim、Vimium)
- Redis数据类型(上)
- discuz开发,登录次数过多,锁定解决方法
- SQLite介绍及使用
- eNSP教程 —— 将虚拟机连接到eNSP设备之中
- 阿里云邮箱企业版与个人版区别大吗?
- android fsck_msdos 分析(二)
- C语言位操作中的置0和置1
- 华为彩信显示尚未激活服务器,华为手机无法接收彩信提示要开通gprs
- HBase原理–所有Region切分的细节都在这里了
- 从零开始学IDA逆向(百度云)
- JAXWS CXF HelloWorld + MyEclipse + Maven + Jetty Byron自學視頻01
- 张浩java成绩大于98分_1028学习
- 无线网dns的服务器地址是多少,宽带通dns的服务器地址是多少
- GMapping_过程
- 百度「文心一言」阿里「通义千问」腾讯的AI将会叫什么呢