c语言指针地址交换程序,C语言-基础教程-指针的地址分配
我们可以定义指针变量指向任何类型的变量。在上述的处理过程中,指针变量指向的变量通过传递变量的地址来实现。指针变量的取值是内存的地址,这个地址应当是安全的,不可以是随意的,否则,写入内存单元的值将会使得已存放的数据或程序丢失。应使用编译系统提供的标准函数来实现地址分配。
ANSI标准建议设置了两个最常用的动态分配内存的函数malloc()和free(),并包含在slib.h中,但有些C编译却使用malloc.h包含。使用时请参照具体的C编译版本。
我们这里所指的动态内存分配其含义是指:当定义指针变量时,其变量的取值是随机的,可能指向内存的任一单元。若指针的指向是不安全的内存地址,在该地址空间上的数据交换就会产生意料不到的效果。为此,在程序的执行过程中,要保证指针操作的安全性,就要为
指针变量分配安全地址。在程序执行时为指针变量所做的地址分配就称之为动态内存分配。
当无需指针变量操作时,可以将其所分配的内存归还系统,此过程我们称之为内存单元的释放。
malloc()用以向编译系统申请分配内存;free()用以在使用完毕释放掉所占内存。
[例6-21]两个字符串的交换。
#include
#include
#include
main()
{
char *p1,*p2,*temp;
p1=malloc(30);/*动态为指针变量分配长度为30字节的存储空间*/
p2=malloc(20);
temp=malloc(30);
printf("inputs1:");
gets(p1);/*输入字符串*/
printf("inputs2:");
gets(p2);
printf("s1------------s2\n");
printf("%s.......%s\n",p1,p2);
scpy(temp,p1);/*串复制*/
scpy(p1,p2);
scpy(p2,temp);
printf("s1------------s2\n");
printf("%s.......%s\n",p1,p2);
free(p1);
free(p2);
}
为指针变量分配的存储空间长度取决于存放字符的多少。在上述的程序中,两个串的交换可以通过标准函数scpy()来完成,也可以通过串指针交换指向完成,用temp=p1;p1=p2;p2=temp;三条赋值语句实现。但是,利用指针交换指向,其物理意义与串通过函数进行的复制完全不同。前者是存放串地址的指针变量数据交换,后者是串在内存物理空间的数据交换。指针变量用完后,将指针变量所占的存储空间释放。
C语言-基础教程-指针的地址分配.doc
下载Word文档到电脑,方便收藏和打印[全文共1015字]
编辑推荐:
下载Word文档
c语言指针地址交换程序,C语言-基础教程-指针的地址分配相关推荐
- 交换变量地址 c语言,C/C++知识点之C语言内存地址交换
本文主要向大家介绍了C/C++知识点之C语言内存地址交换,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助.C语言课很无聊,因为之前学过C#所以就感觉特别的无聊. 但是,只能说我看过, ...
- Android程序开发0基础教程(一)
程序猿学英语就上视觉英语网 Android程序开发0基础教程(一) 平台简单介绍 令人激动的Google手机操作系统平台-Android在2007年11月13日正式公布了,这是一个开放源码的操作系统, ...
- c语言相邻地址相差多少,C语言内存地址基础
从计算机内存的角度思考C语言中的一切东东,是挺有帮助的.我们可以把计算机内存想象成一个字节数组,内存中每一个地址表示 1 字节.比方说我们的电脑有 4K 内存,那这个内存数组将会有 4096 个元素. ...
- c语言经典解决实际程序,C语言经典教程1讲.ppt
<C语言经典教程1讲.ppt>由会员分享,可在线阅读,更多相关<C语言经典教程1讲.ppt(48页珍藏版)>请在人人文库网上搜索. 1.C程序设计,主讲人:任祖华,2,本课程学 ...
- c语言课程设计加密程序,C语言课程设计文件加密解密.doc
C语言课程设计文件加密解密 C语言程序设计 课程设计 学 院 计算机工程 班 级 计算1313 姓 名 学 号 201321121089 成 绩 指导老师 2014年6月26日 计算1313班C语言程 ...
- python是语言还是软件_程序开发语言之Python:是追逐还是坚守?
Python作为计算机程序设计语言的其中一种,最初是被设计用于编写自动化脚本(shell),随着版本的不断更新.语言新功能的添加和机器学习的兴起,Python从2017年开始受到广泛关注. Pytho ...
- c语言怎么返回前一个程序,c语言return返回到哪
c语言return返回到哪 c语言return,返回给了上一级,比如一个递归程序,从第三层返回到第二层:又比如一个普通的子程序,那就返回到主程序中去. 主程序中return返回给了操作系统. 比如下面 ...
- c语言回调函数构架程序,C语言回调函数熟练---使用方法(构建程序框架方便好用)...
void KeyCallback ( uint8 keys, uint8 state ); //具体实现函数 void LEDCallback ( uint8 keys, uint8 state ); ...
- 用c语言做一个五子棋程序,C语言制作简单五子棋游戏
原标题:C语言制作简单五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是不 ...
最新文章
- 未来企业IT选型将更关注社交性(转载)
- linux基础(day22)
- asp操作excel,显示数据及统计方法
- Controller 返回图片请求
- 中外计算机百科知识,计算机百科知识.doc
- html 标签内背景图片自适应 div 大小
- srand rand time函数设置随机值
- 求最大和 java_三种算法求最大子段和问题——Java实现
- 逗号分割符--字段中含逗号等情况的解析方法Java实现
- 高性能服务器编程 Twisted编程基础
- java获取access token_微信java 开发4 access_token获取
- 2021辽宁省大学生程序设计竞赛题解
- python安装pyserial模块_Python使用pip安装pySerial串口通讯模块
- 上传身份证照片js_小程序上传身份证图片的实现方法
- 遗传算法 - 简单介绍
- 身份验证中的allow users=\?\ /中的?和*各是什么意思?
- 场效应管调光电路图_一种LED驱动场效应管调光控制电路的制作方法
- 【运维】- raid管理工具MegaCli以及storcli使用介绍
- Linux统计文件夹下的文件数量
- 数字化再目前阶段,有哪些需要重点投入?
热门文章
- Kotlin学习笔记 第二章 类与对象 第一节类与继承(补)
- 红橙Darren视频笔记 自定义sidebar 自定义View ViewGroup套路
- crash分析中有用的管道命令
- CNN图像分类Keras代码转换pytorch思路与实现
- 计算机图形学E7——裁剪-交互式Liang-Barskey矩形窗口裁剪直线
- 吴恩达 深度学习 编程作业(2-3)- TensorFlow Tutorial
- matlab期中考试卷,matlab期末考试试卷及答案.doc
- spss方差分析_【D】SPSS统计案例分析:多因素方差分析
- wifi android手机版下载地址,手机随身wifi下载-手机随身WiFi 安卓版v1.6.3-PC6安卓网...
- css js写在一起 vue_如何把vue2.0 和 animate.css合并在一起使用(详细教程)