版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课前小演示演示一个产生5次随机数的c语言程序;如何未卜先知?指针(1)C语言——第七部分为什么使用指针?2023/4/13动态分配内存的唯一方法有效地表示复杂的数据结构得到多于一个的函数返回值传地址方式调用函数使程序简洁、紧凑、高效成也萧何败也萧何程序运行内存的分块程序代码区存放可执行程序的二进制代码全局常量区存放常量,如char*pName=“尹庚”;全局变量区存放全局变量和静态变量堆与栈栈(stack)1M~4M左右(通过编译器和操作系统配置)系统自动分配,速度快堆(heap)操作系统所有内存空间程序员手动申请和释放(malloc和free函数)速度比较慢示例inta=0;全局初始化区
char*p1;全局未初始化区
intmain()
{
intb;//栈
chars[]=“abc”;//栈
char*p2;//栈
char*p3=“123456”;//常量区
staticintc=0;//全局变量区
p1=(char*)malloc(10);//堆
p2=(char*)malloc(20);//堆
getchar();return0;
}
变量与地址程序中:shortinti=100;
floatk=15.2;
内存中每个字节有一个编号地址变量是对程序中数据存储空间的抽象,包括变量类型、变量名称、内存起始位置、值…...…...0x28FF440x28FF450x28FF460x28FF49内存0x28FF47100i15.2k思考教室里面有一排行李箱给尹庚老师分配了一个大号行李箱(123、124、125、126),里面放置了一套西装;有一个大行李箱指示牌(200、201、202、203),里面保存着一个数字123;以上内容中类比了那些C语言指针方面的知识点;&与*运算符&取地址运算符
&i获取变量i地址printf("0x%X",&i); 0x28FF44*定义变量时称为指针运算符
int*p=&i;其他应用时称为间接引用运算符
*p=15;辨析
p
等价
&i等价&(*p)
*p等价i
等价*(&i)指针变量的定义与初始化[存储类型]
数据类型
*指针名;例int
*p1=0,*p2=NULL;float*q=NULL;staticchar*name=“尹庚”;注意:1、int*p1,*p2;
与int*p1,p2;2、强制要求指针定义时必须初始化指针变量必须先赋值再使用例inti;int*p=&i;变量必须已说明过类型应一致例inti;int*p=&i;int*q=p;用已初始化指针变量作初值例
intmain(){inti=10;int*p;
*p=i;printf(“%d”,*p);…….}危险!指针的类型int*ptr; //指针的类型是int*
char*ptr; //指针的类型是char*
int**ptr; //指针的类型是int**
int(*ptr)[3]; //指针的类型是int(*)[3]
int*(*ptr)[4]; //指针的类型是int*(*)[4]
int(*ptr)(int); //指针的类型是int(*)(int,int);
void*ptr; //
指针的类型是void*零指针与空类型指针零指针int*p=0;
int*p=NULL;避免指针变量的非法引用、在程序中常作为状态比较void*类型指针
表示void*p;
使用前进行指针类型的强制转换char*p1=(char*)p;奇怪的程序//不要问为什么,只看这种现象#include<stdio.h>intmain(){int*p=0,a[2]={1,2};a[3]=0x28ff38;*p=100;printf("a[0]\t0x%X\t%d\n",&a[0],a[0]);getchar();return0;}指针变量作为参数—传地址特点:共享内存,”双向”传递swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}swap(int*p1,int*p2){int*p=0;*p=*p1;*p1=*p2;*p2=*p;}错误正确指针与数组一级指针与一维数组intq[10],*p=q;两者在一定程度可以互换使用p[i]q[i]*(p+i)*(q+i)二级指针与二维数组intq[5][10],(*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅导企业合同模板(3篇)
- 2025-2026学年重大教学设计感连衣裙
- 2026年南昌影视传播职业学院单招职业倾向性测试题库及答案详解参考
- 2025-2026学年小班捉小鱼教案
- 2025-2026学年腌鸭蛋教案
- 2025-2026学年教案软件app游戏
- 2025-2026学年逻辑思维教案小班
- 益阳医学高等专科学校《兽医临床基本技能训练Ⅱ》2024-2025学年第二学期期末试卷
- 徐州工程学院《数字资源开放获取》2024-2025学年第二学期期末试卷
- 山东师范大学《英语写作实践》2024-2025学年第二学期期末试卷
- 2026年内蒙古交通职业技术学院单招综合素质考试题库带答案详解(培优a卷)
- 2026年南京交通职业技术学院单招职业倾向性测试题库带答案详解(新)
- 2024版2026春新版三年级下册道德与法治全册教案教学设计
- 2026年郑州澍青医学高等专科学校高职单招职业适应性测试模拟试题及答案详细解析
- 第五单元达标练习(单元测试)2025-2026学年二年级语文下册统编版(含答案)
- 劳务实名制管理培训课件
- 2026年镇赉县鑫毅土地资源开发有限公司招聘工作人员(5人)参考题库含答案
- 2026春译林8下单词表【Unit1-8】(可编辑版)
- 学校采购内控管理制度
- 细菌的生长繁殖与变异
- 小作文开头段基本句型
评论
0/150
提交评论