首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

【C语言指针】深入浅出:指针与取值、数组、函数; 详细剖析:指针函数、函数指针、指针数组、数组指针、双重指针、指针与动态内存分配

后端 54.89KB 22 需要积分: 1
立即下载

资源介绍:

深入浅出:指针与取值、数组、函数; 详细剖析:指针函数、函数指针、指针数组、数组指针、双重指针、指针与动态内存分配 个人总结要点: 本质: 地址要用指针来存储,指针是用来存储地址的!!! 重难点: 指针指向的地址,也就是指针存储的地址!!! 就像整型数据要用整型变量来存储,整型变量是用来存储整型数据的! 地址: 地址值: ptr/∑ 取出地址所存的值: *a/sum; 地址所存的值的类型 : int 典例:函数指针 void(* Fun)(void) 地址值: Fun 取出地址所存的值: * Fun 地址所存的值的类型: void (即为函数类型) Tips: 指针(*)则右边是它指向的地址的标识符(也可以称为指针变量),左边为它指向的地址所存的值的类型; 函数(Function)则右边为参数,左边为返回值;
/* 本质: 地址要用指针来存储,指针是用来存储地址值的!!! 重难点: 指针指向的地址,也就是指针存储的地址!!! 就像整型数据要用整型变量来存储,整型变量是用来存储整型数据的! 地址: 地址值: ptr/∑ 取出地址所存的值: *a/sum; 地址所存的值的类型 : int 典例:函数指针 void(* Fun)(void) 地址值: Fun 取出地址所存的值: * Fun 地址所存的值的类型: void (即为函数类型) */ #include int main(void) { int sum = 10; //定义一个指针整型变量 /*第一种写法 */ //声明一个指向整型变量的指针变量 ptr,同时将指针 ptr 指向整型变量 sum 的地址 //int* ptr = ∑ /*第二种写法 */ //ptr是一个指针变量,它存了一个地址 *ptr为取出地址所存的值 int为地址所存的值的变量类型 int* ptr; //声明一个指针变量ptr,用于存储整型变量的地址;地址所存的值是整数类型的 ,指针存的也必须是一个整型变量的地址; ptr = ∑ //ptr是一个指针变量,指针存的就是sum的地址(&sum),这行把sum地址值取出来地址赋给指针ptr。 printf("sum的地址(值): %d\n", &sum ); printf("ptr指向的地址(值): %d\n", ptr ); printf("ptr指向的地址所存的值: %d\n", *ptr ); printf("________________________\n\n"); //指针与数组 int arr[] = {0, 1, 2}; int *ptr1; printf("开始指针ptr1的指向地址的值: %d\n", ptr1); printf("数组首地址:%d\n", arr); ptr1 = arr; //给指针ptr1赋值(指向数组首地址)后,指针ptr指向(存储)的地址为数组首地址 printf("现在指针ptr1的指向地址的值: %d\n", ptr1); //打印数组arr的首地址:ptr1与指向arr的首地址,自然打印的都是首地址的值 printf("数组首地址:%d\n", arr); //地址引用 printf("*ptr1 为取出地址所存的值:%d\n", *(ptr1 + 0)); //*(ptr1 + 0)等价于*ptr1也等价于arr[0] printf("*(ptr1 + 1) 为取出地址所存的值:%d\n", *(ptr1 + 1)); //*(ptr1 + 1)等价于arr[1] //再次说明ptr与arr都能代表数组首地址 ptr1[0] = 3; //测试是否能够修改第一个元素值 printf("first:%d\n", arr[0]); //发现可以,说明 ptr1[0]等价于 arr[0]; arr[0] = 4; printf("secend%d\n", arr[0]); //留下一个思考 int* ptr3 = 10; printf("%d,%d", *ptr3 ,ptr3); /* 底层机制理解: int arr[] = {0, 1, 2}; int *ptr= arr; 声明: 声明一个指向整型数组的指针变量,指这个指针变量指向向数组的首地址 解释: arr的首地址赋给ptr,ptr是一个整型指针,用于存储一个地址,地址存的值为整数类型 所谓的指针就是把地址所代表的值取出来 即为 (*ptr) int代表 这个值为整型,指针指向的内容是整型; 之前说“指针存的也必须是一个整型变量的地址 ” 地址存的值的变量类型 与 指针指向的地址需要存的值变量类型 不一致则需要强制转换 : int* ptr = (int*)malloc(sizeof(int)); */ }

资源文件列表:

C与指针.zip 大约有6个文件
  1. test/prt_test.c 2.51KB
  2. test/prt_test.exe 128.6KB
  3. test/ptr_fun.c 552B
  4. test/ts_read.c 1.46KB
  5. test/ts_read_mt.c 2.04KB
  6. 指针.md 26.26KB
0评论
提交 加载更多评论
其他资源 基于最小顺序MSBM)的分布式装配置换流水车间调度问题(DAPFSP)MILP模型 (CPLEX)
已经有文献证明了MSBM是DAPFSP中表现最佳的模型。本资源提供了基于MSBM表述的DAPFSP混合整数线性规划模型(MILP)。该模型适用于需要在多个工厂或车间中进行调度的复杂生产环境,特别是那些需要考虑机器配置换时间的情境。 内容包括:采用CPLEX语言表达的DAPFSP模型,含有部分测试案例以供参考。
小王的第一个代码分享的一个.zip
小王的第一个代码分享的一个.zip
Java聊天室.zip
这是“Java 聊天室”,仅供学习参考,请勿商用。
Java论坛管理系统.zip
这是“Java 论坛管理系统”,仅供学习参考,请勿商用。
Java论坛管理系统.zip
《灰色预测理论及其应用》Matlab程序.zip
《灰色预测理论及其应用》Matlab程序.zip
百度百科新闻小说word2vec预训练中文模型
百度语料库的Word2Vec模型 百度的Word2Vec模型是基于其内部收集的大量中文文本数据训练而成的。这些数据涵盖了新闻、网页、社交媒体等多种来源,确保了模型的广泛性和实用性。百度的Word2Vec模型通常具有以下特点: 大规模:训练数据集巨大,覆盖了丰富的语言现象。 高质量:经过精心清洗和处理,保证了模型的准确性。 开放性:百度有时会公开发布这些模型,供学术界和工业界免费使用。 一旦下载了模型,用户需要了解如何加载并使用这些词向量。通常,这涉及到将模型文件导入到Python环境中,使用如gensim这样的库来读取和操作模型。
pojo、mapper文件自动生成
通过表名自动生成pojo层和mapper文件以及mapper.xml映射文件。内部包含所有配置文件以及说明文档。
基于MATLAB的贪吃蛇(完美运行)
贪吃蛇(Snake)是一款经典的电子游戏,最早由苹果公司开发并发布于1976年。游戏中,玩家操控一条蛇在一个有边界的区域内移动并吃食物,每吃到一块食物,蛇的长度就会增加。同时,蛇不能碰到自己的身体或碰到边界,否则游戏结束。游戏的目标是尽可能地吃更多的食物,同时保持蛇的活动空间。随着时间的推移,蛇的移动速度会逐渐加快,难度也会逐渐增加。贪吃蛇是一款简单而有趣的游戏,经常被用于娱乐和休闲。