《单片机基础与应用全套配套课件C语言版王静霞参考资料 第3章 C51的指针》由会员分享,可在线阅读,更多相关《单片机基础与应用全套配套课件C语言版王静霞参考资料 第3章 C51的指针(1页珍藏版)》请在金锄头文库上搜索。
1、C51的指针指针是C语言的一个特殊的变量,它存储的数值被解释成为内存的一个地址。指针定义的一般形式如下。数据类型 *指针变量名;例如:int i,j,k,*i_ptr; /定义整型变量i,j,k和整型指针变量i_ptr。指针运算包括以下两种:(1)取地址运算符。取地址运算符&是单目运算符,其功能是取变量的地址,例如:i_ptr=&i; /变量i的地址送给指针变量i_ptr(2)取内容运算符。取内容运算符“*”是单目运算符,用来表示指针变量所指单元的内容,在星号“*”运算符之后跟的必须是指针变量。例如:j=*i_ptr; /将i_ptr所指的单元的内容赋给变量j可以把数组的首地址赋予指向数组的指
2、针变量。例如:int a5,*ap;ap=a; /数组名表示数组的首地址,故可赋予指向数组的指针变量也可以写成:ap=&a0; /数组第一个元素的地址也是整个数组的首地址,也可赋予指针变量ap还可以采用初始化赋值的方法:int a5,*ap=a;也可以把字符串的首地址赋予指向字符类型的指针变量。例如:unsigned char *cp;cp=Hello World!;这里应该说明的是,并不是把整个字符串装入指针变量,而是把存放该字符串的字符数组的首地址装入指针变量。对于指向数组的指针变量,可以进行加减运算,例如:cp-; /cp指向上一个数组元素ap+; /ap指向下一个数组元素例如:定义了指针类型的形式参数如下:uchar *str; 该形式参数表示一个无符号字符型变量的地址。可以采用以下赋值语句:SBUF=*(str+k); /将单元地址为str+k的内容赋给专用寄存器SBUF,启动发送在调用该函数时,直接把数组trdata的数组名作为实际参数代入即可,因为数组名表示数组的首地址,故可直接赋予指向数组的指针变量。