C++程序设计:字符串与字符数组的差异解析

需积分: 15 1 下载量 29 浏览量 更新于2024-08-24 收藏 8.66MB PPT 举报
"本文主要探讨了C++编程中的字符串与字符数组的区别,通过实例展示了它们在内存布局和使用上的差异。同时,文章还简要介绍了C++语言的发展历程及其主要特点,强调了C++作为结构化语言的强大功能和可移植性。" 在C++编程中,字符串与字符数组是两种常见的数据类型,它们虽然在用途上相似,但在存储和处理方式上存在关键区别。字符数组是预定义的一组字符,如示例中的`char a[]={'C','H','I','N','A'};`。在这种情况下,字符数组是静态分配的,元素的顺序与声明时的顺序相同,且长度是固定的,占用5个字节的内存空间。最后一个元素之外并没有自动添加结束符`\0`。 相反,字符串常量如`char c[]="CHINA";`是特殊的字符数组,它由编译器自动在末尾添加`\0`字符以标识字符串的结束,因此`c[]`的长度实际上是6个字节。字符串常量在内存中是不可变的,意味着一旦创建就不能修改。 C++语言起源于C语言,由B语言发展而来,最初是为编写UNIX操作系统而设计。C++在其基础上增加了面向对象特性,使得编程更加灵活且功能更加强大。C++的主要特点包括: 1. 结构化编程:C++是一种结构化编程语言,强调模块化和清晰的代码结构,这有助于编写易于理解和维护的代码。 2. 高级与低级语言特性结合:C++具有丰富的运算符,支持数据的算术逻辑运算和二进制位运算,同时提供了灵活的数据结构,如类和模板,使得它既具有高级语言的抽象能力,又保持了汇编语言的效率。 3. 可移植性:C++程序设计的跨平台性很强,一个在特定环境下编写的C++程序可以在其他不同环境的计算机上几乎无需修改就能运行。 4. 程序设计自由度大:C++允许程序员进行细致的控制,这使得熟练的开发者可以创建高效、通用的代码,但同时也对初学者提出了更高的学习要求。 虽然C++的语法较为灵活,这可能导致对初学者来说调试程序较为困难,但一旦掌握了C++的基本语法规则,编写和调试程序就会变得相对容易。C++以其强大的功能和广泛的适用性,在程序设计领域占据着重要地位。
2023-07-08 上传

int main(void) { const unsigned char *point; u16 i=0; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é2£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ // uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú // KEY_Init(); //°´¼ü³õʼ»¯ AT24CXX_Init(); //IIC³õʼ»¯ OLED_init(); point= &picture_tab[0]; TIM_OCInitTypeDef TIM_OCInitStructure; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //LED¶Ë¿Ú³õʼ»¯ TIM3_Int_Init(4999,7199);//10KhzµÄ¼ÆÊýƵÂÊ£¬¼ÆÊýµ½5000Ϊ500ms TIM4_PWM_Init(10000-1,72-1); //72M/72=1MHz¼ÆÊýƵÂÊ,ÖØ×°ÔØÖµ while(1) { OLED_ShowString(0,30,"21221054",16); OLED_ShowString(0,15,"2023/5/18",16); OLED_ShowChinese(0,0,0,16,1); OLED_ShowChinese(16,0,1,16,1); OLED_ShowChinese(32,0,2,16,1); delay_ms(1000); OLED_Refresh_Gram(); //¸üÐÂÏÔʾµ½OLED if(++i > 3) { LED1=!LED1;//ÌáʾϵͳÕýÔÚÔËÐÐ i=0; } while(1) { u16 u16tmp; u16tmp += 500; if(u16tmp > 10000) u16tmp=0; //³õʼ»¯TIM4 Channe3 PWMģʽ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //Ñ¡Ôñ¶¨Ê±Æ÷ģʽ:TIMÂö³å¿í¶Èµ÷ÖÆģʽ2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±È½ÏÊä³öʹÄÜ TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //Êä³ö¼«ÐÔ:TIMÊä³ö±È½Ï¼«ÐÔ¸ß TIM_OCInitStructure.TIM_Pulse = u16tmp; TIM_OC3Init(TIM4, &TIM_OCInitStructure); //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIM4 OC3 LED2=!LED2; //LED3=!LED3; delay_ms(300); } } }这段代码问题如下:declaration may not appear after executable statement inblock,TIM OCINITTYPEDEF TIM OCINITSTRUCTURE,请修改这个问题

2023-06-09 上传