C/C++____指针____操作
来源:互联网 发布:ghost预装软件 编辑:程序博客网 时间:2024/06/06 20:01
1, 使用指向指针的指针,用来把穿过来的指针中的地址 赋予NULL
void av_freep(void *arg)
{void **ptr = (void **)arg;
av_free(*ptr);
*ptr = NULL; ///这样原来的指针指向的地址就成了NULL. 如果用单指针, 这样ptr=NULL,就是把这个局部变量赋值为NULL,而原来指针指向的地址还是没有变化.故需要用指向指针的指针.
}
---------------------------------------------------------------------------
#include "stdio.h"///练习数组指针,这个一个指向数组的数组指针,即在一个数组中放多个指针,每个指针分别指向一个数组。void main(){ int a[2][3][3]; ///这个比较特殊一点,这样定义指针p,这个p指向的是一个2维数组。 int aa[5][3]; int (*b)[3]=&a[0][0]; ///由于一对圆括号的存在,所以*号首先与b结合,说明b是一个指针变量,然后再与说明符[3]结合, ///说明指针变量b的基类型是一个包含有3个int元素的数组;; 特意说明这个指向的类型是int [3]; ///如果别的要定义,需要定义一个类型为int [3] 的类型,int a[2][3][3];或者int aa[5][3]; a[0][0][0]=1; a[0][0][1]=2; a[0][0][2]=3; a[0][1][0]=4; a[0][1][1]=558555; a[0][1][2]=6; printf("%d\n",b[1][1]); aa[0][0]=470; aa[0][1]=51; aa[0][2]=52; aa[1][0]=53; aa[1][1]=54; b=aa; printf("b =%d\n",b[0][1]); }
总结: 二维数组,是一个数组,一行一行的排列下去,这个数组可以用int *p;这样的一维数组来表示,也可以用int (*)p[]这样的二维数组来表示,注意这里既然是二维数组,在打印或输出的 时候就应该用二维数组来表示:*(*(a+1)+1)的形式来表示。
- C/C++____指针____操作
- C语言____优先级____操作
- C/C++_____小知识____操作总结
- c语言的____ 修饰词___总结
- C语言DFS(4)____棋盘问题
- 关于C内存组织方式____结构体对齐
- C语言BFS(1)____胜利大逃亡
- Qt___常用事件____操作
- linux___定时器__延时____操作
- 数据结构实验一____单链表操作
- 数据库____操作表中数据
- ____熟悉c++,c#,我该选择哪个语言来开发呢?---正纠结于此,所以搜来参考
- 黑马程序员____基础____多线程
- 黑马程序员____基础____网络编程
- 黑马程序员____基础____正则表达式
- java网络编程____字节流操作(instream ,outstream)
- Linux教程____基础linux命令(文件操作)
- Linux教程____基础linux命令(命令操作)
- bss段,数据段,程序段,堆和栈之间的区别
- SQL 2005 的存储过程和触发器调试大法
- LINUX常用的一些shell命令
- 从不同题型分析托福阅读训练技巧
- GetLastError
- C/C++____指针____操作
- 快速排序的非递归实现
- WebService 基于axis1.4(二)
- 黑马程序员——day19(1)IO流
- 编程高手—快体现了真正掌握
- 记录点滴21
- eclipse中的汉字极小的解决方案
- 黑马程序员__IO流笔记一
- 数组数据的移动实现实例化: