c/c++语言开发共享单片机中C语言指针与变量

指针与变量   注:keil中单片机c 若指针没有指向提前声明的变量,会产生混乱 eg: 情景一: 情景二: type *p,*q; type *p,*q,pp,qq; 给指针p赋值;

指针与变量

 

注:keil中单片机c

若指针没有指向提前声明的变量,会产生混乱
eg:
情景一: 情景二:
type *p,*q; type *p,*q,pp,qq;
给指针p赋值; p=&pp;
给指针q赋值; q=&qq;

p或q的值会出问题 正常,没问题(type为一结构体)

结论:情景二中,是指针使用的规范过程,先分配了变量,然后指针指向变量。
情景一中则没有定义变量,直接用指针操作,出现错误,猜测:因为指针只是用来存储变量的地址,现在即没有定义变量,那么给指针所赋的值在内存中可能是随机存储,然后指针指向他们时会出现混乱。

关于指针自身地址和指针所指地址
keil中单片机c编程

rf_packet_info *buff,buffer;

uart_sendbyte(buff); uart_sendbyte(&buff); uart_sendbyte(&buffer);
buff=&buffer;
uart_sendbyte(buff); uart_sendbyte(&buff); uart_sendbyte(&buffer);

烧写后第一次运行串口结果:
03 21 27
27 21 27
第一次之后的输出结果:
27 21 27
27 21 27

结论:uart_sendbyte(buff) 指针buff内所存的内容,即所指变量的地址,在指向变量前是随机值;
uart_sendbyte(&buff) 指针自身的地址;
uart_sendbyte(&buffer) 变量buffer的地址。

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/607643.html

(0)
上一篇 2021年5月14日
下一篇 2021年5月14日

精彩推荐