2025-11-08 06:18:54
字符变量ch就是用来存单个字母或者符号的变量,比如char ch = 'A';这里'是单引号,A是字母,整个语句告诉编译器给ch分配一个字节的空间存下这个字符。字符串定义用char str[] = "Hello";这里用了方括号和双引号,双引号里的内容就是字符串,方括号表示这是一个数组,编译器会自动给这个数组分配足够存下"Hello"和结尾的0字符的空间,大概需要6个字节(5个字母+1个结束符)。字符串定义和字符变量最大的区别就是字符串末尾必须带0,这是C语言的标准规则,就像给字符串加上一个句号表示结束。
因为字符变量ch用char类型定义,char是C语言的标准类型,专门用来存单个字符,每个字符占1个字节。字符串定义里的方括号数组表示这是一个存储多个字符的容器,双引号里的内容会被复制到数组里,同时编译器自动在末尾加一个0字符。比如"Hello"实际占用6个字节,分别是H-e-l-l-o-0。IAR编译器处理这种定义时会检查语法规则,比如字符串末尾必须有0,字符变量不能存多个字符。数据来源显示,char类型占1字节,字符串数组需要多分配1字节存储结束符,这个规则在《C语言标准规范》第7章有明确说明。
本题链接: