C言语字符数组和字符指针

常量和符号常量



  • 直接常量:直接以值的方式表现的常量称之为直接常量。上述举例这些多是直接常量,直接写出来了。

  • 符号常量:用标识符定名的常量称之为符号常量,就是为下面的直接常量再取一个名字。运用符号常量一是便利了解,进步程序可读性,更主要的是便利程序的后续保护,习气上符号常量我们都用大写字母和下划线来定名。













			unsigned char code LedChar[] = { //数码管显示字符转换表 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E };







字符方式寄义\n换行\t横向跳格(相当于 Tab)\v竖向跳格\b退格\r光标移到行首\\反斜杠字符\\单引号字符\”双引号字符\f走纸换页\0空值




字符和字符串数组实例

			unsigned char array1[] = "1-Hello!\r\n"; unsigned char array2[] = {'2', '-', 'H', 'e', 'l', 'l', 'o', '!', '\r', '\n'}; unsigned char array3[] = {51, 45, 72, 101, 108, 108, 111, 33, 13, 10}; unsigned char array4[] = "4-Hello!\r\n";




			#include  bit cmdArrived = 0; //敕令抵达标记,即接纳到上位机下发的敕令 unsigned char cmdIndex = 0; //敕令索引,即与上位机商定好的数组编号 unsigned char cntTxd = 0; //串口发送计数器 unsigned char *ptrTxd; //串口发送指针 unsigned char array1[] = "1-Hello!\r\n"; unsigned char array2[] = {'2', '-', 'H', 'e', 'l', 'l', 'o', '!', '\r', '\n'}; unsigned char array3[] = {51, 45, 72, 101, 108, 108, 111, 33, 13, 10}; unsigned char array4[] = "4-Hello!\r\n"; void ConfigUART(unsigned int baud); void main(){ EA = 1; //开总中缀 ConfigUART(9600); //设置装备摆设波特率为 9600 while (1){ if (cmdArrived){ cmdArrived = 0; switch (cmdIndex){ case 1: ptrTxd = array1; //数组 1 的首地址赋值给发送指针 cntTxd = sizeof(array1); //数组 1 的长度赋值给发送计数器 TI = 1; //手动方法启动发送中缀,处置数据发送 break; case 2: ptrTxd = array2; cntTxd = sizeof(array2); TI = 1; break; case 3: ptrTxd = array3; cntTxd = sizeof(array3); TI = 1; break; case 4: ptrTxd = array4; cntTxd = sizeof(array4) - 1; //字符串实践长度为数组长度减 1 TI = 1; break; default: break; } } } } /* 串口设置装备摆设函数,baud-通讯波特率 */ void ConfigUART(unsigned int baud){ SCON = 0x50; //设置装备摆设串口为形式 1 TMOD &= 0x0F; //清零 T1 的掌握位 TMOD |= 0x20; //设置装备摆设 T1 为形式 2 TH1 = 256 - (11059200/12/32)/baud; //盘算 T1 重载值 TL1 = TH1; //初值等于重载值 ET1 = 0; //制止 T1 中缀 ES = 1; //使能串口中缀 TR1 = 1; //启动 T1 } /* UART 中缀效劳函数 */ void InterruptUART() interrupt 4{ if (RI){ //接纳到字节 RI = 0; //清零接纳中缀标记位 cmdIndex = SBUF; //接纳到的数据保管到敕令索引中 cmdArrived = 1; //设置敕令抵达标记 } if (TI){ //字节发送终了 TI = 0; //清零发送中缀标记位 if (cntTxd > 0){ //有待发送数据时,持续发送后续字节 SBUF = *ptrTxd; //收回指针指向的数据 cntTxd--; //发送计数器递加 ptrTxd++; //发送指针递增 } } }

C言语字符数组和字符指针