刚上大学的时候学的是c++编程,后来一直没怎么弄明白,转而学习C语言开发单片机系统。研究生后,逐渐开始进入到嵌入式编程,因为内容太杂而不得放弃,开始学习软件编程,主要是中C#和JAVA。几番项目下来,逐渐弄懂了嵌入式编程各个环节的关系,所以又想重新学习以下嵌入式编程。我选择linux移植的模式,linux的优点不再多说了,开发ARM系统,我自己设想摄像了两套方案:
其一,移植linux+QT的模式;
其二,移植android系统。
android的软件开发非常简便,只要又java基础,一般人2个星期上手问题不大,可是其系统的定制还是比较麻烦的,而且手头上没有那么好的开发环境,目前我只有2440开发板,移植android显然是有难度的,也没有必要。所以选择了第一种开发方案。QT编程用到了C++和C的东西,作为基础语言,还是要温习一下的,开发过程中,发现有些符号理解的不清晰了,这里缕清一下,方便后面的开发。
“*” “&” “->” “.”这四个符号要合在一起说明,前三个都是和指针相关的操作,指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。*号定义一个指针,如:int* point; 定义了一个指向整型数据的指针。&号读作“什么的地址”,它表示返回的是变量在内存中的地址而不是变量本身的值。比如&number,读作number的地址。那么point=&number;表示什么呢?很显然,就表示把number的地址赋给point指针。看下一段代码:
int number=5;
int* point;
point=&number;
比较以下以下代码:
int number=5;
int* point;
*point=number;
显然*point的值是一样的,都是5.
关于动态分配内存的方法清参照http://www.cppblog.com/Lee7/archive/2007/08/08/29555.html里面的描述,因为本文主要目的是解释几种符号的区别,这里不再对指针具体操作赘述。
指针操作类用到了->符号,看下面的例子:
class MyClass
{
public: