什么是指针?
指针同其它变量一样,不过他存储的是变量的地址.
多时候还可以看到多层的指针,就是这个指针所指的地方还是指针,而还是指针的地方指的还是指针,就这么一层一层的套,没有什么复杂的。
指针就是地址。
指针的类型?
从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。
为什么用?
可以更简单,提高效率
怎么用?
简单用法:
int a, *p;
p=&a; //基本类型
int arr[10], *p;
p=arr;//一维数组
int arr[4][5];
int *p;
p=arr[0]; //二维数组
for example:
int arr[3][3]={ {1,2,3},{4,5,6},{7,8,9}};
int *p=arr[0]; //数据类型相同,可以赋地址值
for(i=0;i<9;i++)
printf("%d", *(p+i)); // 逐个的输出数组元素
int arr[3][3]; 即 {arr[0], arr[1], arr[2] }
int (* p) [3] ; // 定义了一个指向二维数组的指针,这个二维数组中的一维数组有3个元素。
p=arr; // 把二维数组的地址赋给指针 p
如果二维字符数组初始化是 char arr[3][4]={"abc","def","ghi"};
所以可以如下写:
*(p+0) //是数驵 a[0] 的首地址 printf("%s", *p); 输出字符串 “"abc"
*(p+1) //数组a[1]的首地址 printf("%s", *(p+1)); 输出字符串 "def"
*(p+2) //数组 a[2]的首地址 printf("%s",*(p+2)); 输出字符串 "ghi"
如果要用这个二维数组的指针逐个的输出字符可以写为:
*(*(p+0)+0) //第一个字符 a
*(*(p+0)+1) //第二个字符 b
*(*(p+0)+2) //第三个字符 c
*(*(p+0)+3) //第四个字符 d
*(*(p+0)+4) //第五个字符 e
注意什么?
使用指针前一定要先初始化
不要把地址常量的赋给指针
分享到:
相关推荐
曾哈工大老师赵岩讲C语言课程的课件, 赵岩老师著有《C语言点滴》, 风趣幽默, 适合入门同学学习! Area.zip C语言总复习.pptx C语言推荐书籍.ppt 第0讲-概述.pdf 第10讲-指针的复杂形式.pdf ...第9讲-指针的应用.pdf
c语言程序设计教学资料第9章---指针.ppt
谭浩强C语言教程第三版,学习C语言必备,自学的良好伙伴! 目录: 1 C语言概述 2 程序的灵魂—算法 3 数据类型、运算符与表达式 4 最简单的C程序设计—顺序程序设计 5 分支结构程序 6 循环控制 7 数组 8 函 ...
第9节-windows版本git的用法 C语言进阶课件 第1节-数据的存储 第2节-指针的进阶 第3节-字符串+内存函数的介绍 第4节-自定义类型详解(结构体+枚举+联合) 第5节-动态内存管理 第6节-文件操作 第7节-程序的编译(预处理...
C语言第9讲 指针
C语言课件:第九章 指针.ppt
第9章 优先队列和堆排序 第10章 基数排序 第11章 特殊用途的排序方法 第四部分 搜索 第12章 符号表和二叉搜索树 第13章 平衡树 第14章 散列 第15章 基数搜索 第16章 外部搜索
C语言程序设计第9章指针进阶.ppt
C语言第九章指针习题
1. (中文版)C语言编程:一本全面的...5. c语言面试题__指针篇 6. C语言注释及变量名命名规则 7. 高质量C语言编程---大家从头看到第八章,再看看11章就可以了 8. 经典嵌入式工程师面试C语言题目 9. 华为面试题精选
C语言全套资料 C语言程序设计 C语言算法 C语言课件 C语言顺序程序设计 C语言数组 C语言循环控制 C语言预处理命令 C语言文件操作指针 C语言选择结构程序设计 C语言结构体与共用体 C语言文件操作 C语言函数 ...
二级C语言 第九章 指针.docx 学习资料 复习资料 教学资源
二级C语言 第九章 指针.doc 学习资料 复习资料 教学资源
第1童 C语言概述,第2章 典型的C语言开发环境,第3章 C语言数据类型,第4章 运算符和表达式,第5章 C语句及流程控制结构,第6章 格式化输入/输出,第7章 数组,第8章 函数,第9章 指针,第10章 结构,第12章 预处理...
第9章 实用编程技巧 170 9.1 图形应用技巧 170 9.1.1 显示适配器类型的自动测试 170 9.1.2 屏幕图像的存取技巧 179 9.1.3 屏幕显示格式的控制方法 181 9.1.4 使图形软件脱离BGI的方法 182 9.1.5 拷贝屏幕图形的方法 ...
第一,指针的使用使得不同区域的代码可以轻易的共享内存数据。当然你也可以通过数据的复制达到相同的效果,但是这样往往效率不太好,因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。但使用指针就可以很...
C语言程序设计课件第9章指针.ppt
第9章 指针和数组——指针数组的应用:命令行参数C语言程序设计第9章 指针和数组命令行参数什么是命令行参数(Command Line Arguments)?GU
• C语言初学者入门讲座 第九讲 数组(1) • C语言初学者入门讲座 第九讲 数组(2) • C语言初学者入门讲座 第十讲 函数(1) • C语言初学者入门讲座 第十讲 函数(2) • C语言初学者入门讲座 第十讲 函数(3) • C语言...
C语言程序设计教程第9章指针3.ppt