c语言中用of做文件名指针,C语言 指针应用

第7章指针 C语言大学实用教程 内容提要 指针的概念数组的下标法引用和指针法引用利用指针数组对各个字符串进行排序 存取等操作带参数的main 函数 指针概述 指针的概念一 什么是变量的地址 什么是变量的内容 每个变量在内存中都占有一定字节数目的存储单元 C编译程序在对程序编译时 根据程序中定义的变量的类型 在内存中为其分配相应字节数目的存储空间 变量在内存中所占存储空间的首地址 就称为该变量的地址 address 变量在内存中所占存储单元中存放的数据 就称为变量的内容 content 直接寻址间接寻址指针变量专门存放地址型数据的变量运算符 和 的使用 p1 该表达式的值代表的是变量a的地址 a 该表达式引用的是变量a的内容 引入指针的原因为函数提供修改变量值的手段指针为C的动态内存分配系统提供支持指针为动态数据结构提供支持指针可以改善某些子程序的效率例 任意从键盘输入两个整数 然后将交换后的数据重新输出 includevoidswap intx inty main inta b printf Pleaseentera b scanf d d 仔细分析 是否成功交换 变量的指针作为函数参数 变量指针指针变量变量的指针就是变量的地址 指针变量就是C语言中专门用于存放地址型数据的变量指针变量的定义类型关键字 指针变量名 例 1 int p1 p2 2 inta b int p1 指针变量的运算1 指针变量的内容只能是地址 而不能是数据 必须用相同基类型的变量的地址对其进行赋值 2 指针变量必须经初始化后才能使用 否则指针变量所指向的存储单元是不确定的 对其所作的赋值等操作将是很危险的 3 由于指针的值就是地址 指针运算实质上就是对地址的运算 指针运算只能参与赋值运算 算术运算和关系运算 其中 指针可参与的算术运算值有两种 加和减 即加 减一个整数或自增 自减运算 分析 a p a p p p 1 a p a p p p 1 重新解决问题 includevoidswap int x int y main inta b printf Pleaseentera b scanf d d 字符指针作函数参数 字符数组与字符指针的不同1 定义方法不同 charstr 10 定义的是一个字符数组 而char ptr 定义的是一个字符指针 2 初始化含义不同 charstr 10 China char ptr China 3 赋值方法和含义不同 指针变量可以用如下方式赋值 char ptr ptr China 正确 charstr 10 str China 错误 strcpy str China 4 输入字符串时略有不同 用scanf语句输入字符串到数组中 用charstr 10 scanf s str 而用字符指针输入字符串时 必须确保字符指针事先已指向了一个数组的首地址 即charstr 10 ptr ptr str scanf s ptr 正确 而char ptr scanf s ptr 错误 5 字符数组的数组名是一个地址常量 它的值是不能改变的 而字符指针是一个变量 它的值是可以改变的 for ptr str ptr 0 ptr printf c ptr 指针和数组间的关系 一维数组的地址和指针数组的指针 指数组的起始地址 指向数组的指针变量 inta 9 intp p 可有五种引用数组元素的方法 二维数组的地址和指针行地址和列地址1 a i j 2 a i j 3 a i j 4 a i j 行指针和列指针定义行指针 类型 行指针名 常量n 定义列指针 int p 例题 指针数组 指针数组 类型名 数组名 数组长度 如 int p 4 例题 编程将若干字符串按字母顺序由小到大排序后输出 include includemain inti j char temp charptr 5 Pascal Basic Fortran Java VisualC printf Beforesorted n for i 0 i 5 i puts ptr i 输出排序前的5个字符串 for i 0 i 4 i 交换法排序 for j i 1 j 5 j if strcmp ptr j ptr i 0 若字符串小于ptr i 所指字符串 temp ptr i 则交换指针变量ptr j 和ptr i 的指向 ptr i ptr j ptr j temp printf Aftersorted n for i 0 i 5 i puts ptr i 输出排序后的5个字符串 带参数的main函数和命令行参数 main intargc char argv 形参argc表示命令行中参数的个数形参argv被说明为指针数组 用于指向命令行中的多个命令行参数 字符串 下面的程序用于演示命令行参数与main函数各形参之间的关系 main argc argv intargc char argv inti printf Thenumberofcommandlineargumentsis d n argc printf Theprogramnameis s n argv 0 if argc 1 printf Theotherargumentsisfollowing n for i 1 i argc i printf s n argv i 运行程序 假定上面程序的文件名是echo c 则在程序成功编译和连接后 编译连接后的程序名为echo exe 我们可按如下命令行方式运行这个程序 echoprogrammingisfun 则程序将显示结果如下 Thenumberofcommandlineargumentsis 4Theprogramnameis echo exeTheotherargumentsisfollowing programmingisfun

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值