C语言的指针,在写51单片机程序用得上吗?

Python061

C语言的指针,在写51单片机程序用得上吗?,第1张

可以的。

在51单片机的嵌入式C语言中,指针同样是被支持的。

所以在单片机上一样可以使用指针操作,具体使用方法,与标准C语言并没有不同。

不过需要注意的是,使用指针代表着间接寻址,相对变量的直接寻址,速度要稍慢一些。而单片机运算速度较慢,大量使用指针有可能会降低执行效率,影响效果。所以除非必要,还是少用指针。

P最终指向了s2,假如当前P指向s1,那么*P的值会改变。如果P不指向S1,那么S1值的改变不会造成*p值的改变。

指针是非常灵活的,它可以先后指向同一类型(只能是p初始化时指定的变量类型)的不同的变量。但是如果你将它指向了不同类型的变量,编译器会报警或者编译通不过,如果在这种情况下编译通过,则非常有可能造成程序错乱。

另外,p的值是它所指向的变量的地址值,*p才是p指向的变量的值。*的意思其实是间接寻址,意即“给我拿出P地址的内容”。

你好,比较方便的实现方式是在函数的外部申请数组;在调用函数的时候传入数组的地址进行操作。如果一定要在子函数内部申请空间并返回地址,那么需要在子函数内部动态申请内存空间。具体的方法一般是使用标准库中的malloc函数。对于c51函数库,参考这个链接:http://www.keil.com/support/man/docs/c51/c51_malloc.htm