指针数组与数组指针
来源:互联网 发布:北京正规编程培训学校 编辑:程序博客网 时间:2024/04/30 08:38
指针数组与数组指针
来自:http://www.cnblogs.com/we-hjb/
指针是用来存放另外一个变量的地址的变量。C语言中,指针被广泛使用。有时是因为非用不可,有时是因为它能让代码更紧凑,更高效。指针也是一个定时炸弹,稍有不慎会导致程序崩溃。另外,指针乱飞也会影响程序的可读性。指针和数组关系密切,基本上能用数组的地方,都可以用指针来实现。
最近在搞GPS和SMS的解析程序,里面主要涉及字符串的解析,如GPS的GPRMC语句的解析,自定义的SMS控制指令的解析,用二维字符数组是可以解决的,但效果比用指针数组差很多,执行效率低和内存使用大。有点吃苦不讨好的意思。下面简单对比一下两种方法的实现。
//使用二维数组时的解析代码 while(*src) *(src-1) = 0;
int SplitSentenceToFields1(TCHAR *src,TCHAR szFields[16][16])
//int SplitSentenceToFields1(TCHAR *src,TCHAR szFields[][16])
//int SplitSentenceToFields1(TCHAR *src,TCHAR (*szFields)[16])
{
int i = 0;
int j = 0;
while(*src)
{
if(*src != _T(' '))
{
szFields[i][j++] = *src;
}
else
{
szFields[i++][j] = 0;
j = 0;
}
src++;
}
szFields[i++][j] = 0;
return i;
}
//使用指针数组时的解析代码
int SplitSentenceToFields2(TCHAR *src,TCHAR *pFields[])
{
int i = 0;
if(*src)
{
*(pFields + i++) = src;
{
if(*src++ == _T(' '))
{
*(pFields + i++) = src;
}
}
}
return i;
}
TCHAR szGPSFields[16][16]; //使用二维数组时,用来存放各字段的Buf
TCHAR *pGPSFields[16]; //使用指针数组时,用来存放各字段的指针
- 指针:指针与数组
- 指针与指针数组
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 数组指针与指针数组
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组 与数组指针
- 指针数组与数组指针
- 数组指针与指针数组
- 指针数组与数组指针
- 指针数组与数组指针
- 使用 .NET 实现 Ajax 长连接
- XML 简介
- Android Mount Daemon
- JSP中实现web播放器
- 联发科250万美元投资大陆手机软件公司沃勤
- 指针数组与数组指针
- php GD库的配置
- VB 创建SYSTEM用户进程
- 中国象棋软件-引擎实现(一)概述
- Ubuntu安装KDevelop和中文输入法
- php 一个简单的图像创建程序
- 虚拟机
- warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead.
- 56视频网PHP解码源代码