C语言的字符串和字符指针
今天在写嵌入式代码时,遇到了个易错的,关于嵌入式 C C C语言字符串和字符指针的问题。
!!!!
在嵌入式
C
C
C语言中,有sprintf
格式化字符串函数,使用方式为:
sprintf(DataWriteBuffer,"%d,%f,%s\r\n",10,10.1,"aaaa");
其中DataWriteBuffer
是一个字符串指针,将格式化后的字符串拷贝到DataWriteBuffer
指针中。DataWriteBuffer
用了两种定义方式:
char *DataWriteBuffer;
char DataWriteBuffer[40];
发现,第二种才可以有效,第一会出现输出全是空。
DataWriteBuffer
只是指向一个字符,个人理解只是分配了单个字符的内存,也就是一个字节。第二个DataWriteBuffer
指向一个字符数组的首地址,DataWriteBuffer
后的连续四十个字节都是属于DataWriteBuffer
可控范围的。