一、字符和字符串
1.1字符(character)
是数据结构中最小的数据存取单位,通常由8个二进制位(一个字节)来表示一个字符。
可用单引号标识单个字符,例如:
'a'
1.2字符串(character string)
是一个or多个字符的序列。可用双引号标识,例如:
“I'm a student living in Shandong province.”
1.3字符串的使用
由于C语言没有专门用来存储字符串的变量类型,字符串都被存储在char类型的数组中,也就是说,必须先创建一个数组,把字符串中的字符逐个放入先前创建的数组中,举个栗子:
char color [20] ;
#include <stdio.h> int main() { char color[40]; printf("What's your favorite color? "); scanf("%s",color); printf("Well,you like %s very much.\n",color); return 0; }
这里的%s 用来告诉printf()要打印一个字符串
输出(output)如下:
What's your favorite color? Dark blue
Well,you like Dark very much.
uu发现了没?scanf()函数只读取了Dark,那blue嘞?没了?这是因为当scanf()遇到第一个空白(space(即 空格)、制表符、换行符)时就不再读取输入,所以在上面这段代码里只读到Dark就停止了。
1.4字符和字符串
举个栗子,“W” 和 'W'不同,前者属于字符串常量,后者则是字符常量
很重要的一点就是,字符串最后是以“\0”结束,即字符串“W”实际上由两个字符组成:
'W'和空字符\0
二、常量和C预处理器
2.1 常量
在数学上,像1,5,178这样的数字叫做常数,相似的,在C语言中,值不变的量即为常量。
2.2常量的分类
C语言的常量可以分为直接常量和符号常量
直接常量:又分为整型常量,实型常量,字符型常量和字符串常量
符号常量:单独属于一类常量,可以用一个标识符来表示符号常量,符号常量在使用前必须先定义,常表示为:#define 标识符 常量值
2.3C预处理器
(截图fromC 预处理器 | 菜鸟教程)
三、const限定符
C90标准新增const关键字。const 用于限定一个变量为“只读”。
那什么是“只读”呢?从字面理解即为“只能读”,在这里意思是,这个变量被const修饰后,(这个变量)只能(被)读取,不能修改也不能储存。
注意!被const修饰的变量依然还是变量,而不是常量
PS:《C Primer Plus》中提到,“const用起来比#define 更灵活”(具体怎么个“灵活”法,等以后深入理解了再做分享~)
四、粗略认识printf( )和scanf( )
它俩是输出(output)/输入(input)函数,或简称I/O函数
4.1初识printf()
printf()函数的“()”里加双引号,在双引号里输入文字就可以打印出一模一样的文字,别忘了“()”最后加分号“;”
刚开始学习c语言的萌新(比如我hhhh)一开始肯定见到过类似这样的代码↓
#include <stdio.h> int main() { int num = 8; printf("%d\n",num); return 0; }
然后开始疑惑为什么printf() 里要写“%d”
萌新看过几个代码后不难发现,打印整数时用%d,打印字符时用%c,这又是为什么?
答曰:王八的屁股——龟腚
%d,%c,%s······这些符号被称为“转换说明”,它们指定了如何把数据转换成可显示的形式。下面列出ANSI C标准提供的转换说明(作为初学者,这里暂且列出小白常见的几种)
转换说明 |
输出 |
%c |
单个字符 |
%d |
有符号的十进制整数 |
%f |
float类型的浮点数 |
%lf | double类型的浮点数 |
%p |
指针 |
%u |
无符号的十进制整数 |
%% |
打印一个“%” |
4.2初识scanf()
scanf()函数可以读取不同格式的数据
(对于像我一样初学C语言的小白可能有点难以驾驭,这里就提一句,今后再细细分享)