【IOS 开发学习总结-OC-7.11-★】 objective-c——指针数组和指向指针的指针
来源:互联网 发布:python遍历中文字符串 编辑:程序博客网 时间:2024/05/21 17:04
指针数组与 main() 函数形参
有时需要一次声明具有多个相同特征的指针变量,此时可借助,指针数组来实现。指针数组使用最多的地方是处理字符串数组的情况,由于字符串本身需要使用 char * 型指针变量来表示,当程序中有多个字符串要保存时,就可以借助指针数组。
声明指针数组与声明普通数组的语法类型:语法格式:类型* 数组变量[长度];
注意与类型 (*变量名)[长度];
的语法格式相区分。
区别在于:
第一种写法,中[]运算符的优先级比*要高,数组变量先于后面的[]结合成数组形式,前面的"类型*"
则用于指定多个数组元素类型,且声明每个数组元素都是指针。
第二种写法,(*变量名)
先形成一个整体,代表一个指针变量,该指针变量指向一维数组。表示定义一个指向一维数组的指针变量。
示例程序:(对多个字符串进行排序,按从小到大的顺序进行排列)
#import <Foundation/Foundation.h>void sort(char* names[] , int n){ char* tmp; // 外轮循环控制依次取得0~n-2个字符串 for(int i = 0 ; i < n - 1 ; i++) { // 用第i个字符串,依次与后面的每个字符串相比 for(int j = i + 1 ; j < n ; j++) { // 如果names[i]的字符串大于names[j]的字符串, 交换它们 // 这样就可以保证第i个位置的字符串总比后面的所有字符串小 if(strcmp(names[i] , names[j]) > 1) { tmp = names[i]; names[i] = names[j]; names[j] = tmp; } } }}int main(int argc , char * argv[]){ @autoreleasepool{ int nums = 5; // 定义5个字符串 char* strs[] = {"Objective-C" , "iOS" , "Java" , "Ajax" , "Android"}; // 对字符串排序 sort(strs , nums); // 输出字符串 for(int i = 0 ; i < nums ; i ++) { NSLog(@"%s" , strs[i]); } }}
我们来看排序前和排序后的,存储示意图:
指向指针的指针
指针变量也是变量,也需要保存在内存中,指针变量也有自己的内存地址。如果再定义一个指针变量来保存指针变量的存储地址,该地址就是指向指针的指针。
类型** 变量名;`
声明指向指针变量的指针语法格式是:
如下程序:
#import <Foundation/Foundation.h>int main(int argc , char * argv[]){ @autoreleasepool{ int a = 20; int* p = &a; int** pt = &p; // 输出指针变量p保存的地址:a变量的地址 NSLog(@"%p" , p); // 输出指针变量pt保存的地址:指针变量p的地址 NSLog(@"%p" , pt); // 输出指针变量pt所指变量p(依然是指针)中保存的地址(变量 a 的地址) NSLog(@"%p" , *pt); // 输出pt所指的指针变量指向的变量的值 NSLog(@"%d" , **pt); }}
编译,输出的结果:
0x7fff5fbff84c0x7fff5fbff8400x7fff5fbff84c20
对于 objective-c 编程而言,更多的是采用面向对象的方式进行。因此对于指向指针的指针这种用法了解即可,无需深入。
0 0
- 【IOS 开发学习总结-OC-7.11-★】 objective-c——指针数组和指向指针的指针
- 【IOS 开发学习总结-OC-7.8-★★】 objective-c——指针与数组
- 【IOS 开发学习总结-OC-7.7-★★】 objective-c——指针
- 【IOS 开发学习总结-OC-7.10-★】 objective-c——函数与指针
- C/C++——指向函数的指针和指向函数的指针的数组
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- C语言指针数组和指向指针的指针
- 指针数组,和指向指针的指针
- 指针数组和指向指针的指针
- 指针数组和指向指针的指针
- 数组指针和指向指针的指针
- C语言学习笔记之指向数组元素的指针和指向数组的指针
- 数组指针、指针数组、指向指针的指针使用总结
- C语言学习-----指针篇(1)-----指向多维数组的指针和指针变量
- 《C和指针》——指向数组的指针(逐个移动和逐行的区别)
- 指向数组的指针和指针数组
- 指针数组和指向指针的数组
- Maximum Gap
- UIday1603:图片异步下载、KVO
- 使用C#语言跨平台开发iOS 应用程序
- distributed-algorithms-in-nosql-databases
- SpringMVC的工作流程
- 【IOS 开发学习总结-OC-7.11-★】 objective-c——指针数组和指向指针的指针
- BP神经网络基本原理
- mapreduce在控制台打印log4j日志
- oralce plsql 开发过程记录
- C算法-求最大公约数和最小公倍数
- 群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法【附C#群蚁算法完整项目代码】
- next-key lock 实验1
- 【Android】旋转的圆形按钮
- 如何把word直接转换成pdf文件格式