一般字符串是\0结尾的
那么\1 \2可以吗?其实可以的 !
#include <stdio.h>
#include <string.h>
#include <stdlib.h>//free
int main(int argc,char **argv)
{
unsigned char loop[16]={0,0,0,0,1,2,3,4,0,0,0,0,1,2,3,4};
//unsigned char loop[17]={"\0\0\0\0\1\2\3\4\0\0\0\0\1\2\3\4"};//[16]不行 err
printf("sizeof(loop)=%d strlen(loop)=%d\r\n",sizeof(loop),strlen((char *)loop));
for(int i=0;i<16;i++)printf("%02X-",loop[i]);
return 1;
}
2个loop都可以
sizeof(loop)=17 strlen(loop)=0
00-00-00-00-01-02-03-04-00-00-00-00-01-02-03-04-[Finished in 0.8s]
深入一下 不能0XAB 只能是十进制!!!!
int main(int argc,char **argv)
{
unsigned char loop[17]={"\33\0\0\0\1\2\3\4\0\0\0\0\1\2\3\4"};//[16]不行 err
printf("sizeof(loop)=%d strlen(loop)=%d\r\n",sizeof(loop),strlen((char *)loop));
for(int i=0;i<16;i++)printf("%02X-",loop[i]);
return 1;
}
sizeof(loop)=17 strlen(loop)=1
1B-00-00-00-01-02-03-04-00-00-00-00-01-02-03-04-[Finished in 0.9s]
OTA最后
#include <stdio.h>
#include <string.h>
#include <stdlib.h>//free
int main(int argc,char **argv)
{
unsigned char j=0;
unsigned char loop[17]={"\0\0\0\0\0\0\0\0\1\2\3\4\4\3\2\1"};//[16]不行 err
printf("sizeof(loop)=%d strlen(loop)=%d\r\n",sizeof(loop),strlen((char *)loop));
while(1)
{
printf("%02X\t",loop[j]);//0//114//15
j=(j+1)%16;//1//215//0
if(j==0)break;
}
return 1;
}