开发文字处理程序、电子表格、编译器、其他产品
{}标志标记函数体的开始和结束
int 是C语言的关键字,一种数据类型
num 是一个标识符,也就是变量,函数,其他实体的名称
首次使用变量前要先声明
把一个值(1)赋给变量(num),该语句以分号结尾。
printf函数查看双引号中的内容,并将其打印在屏幕上
%d 相当于一个占位符,%用于提醒程序,在该处打印一个变量;d表明把变量作为十进制整数打印。
转义序列(如\n):用于代表难以表示或无法输入的字符
换行符(Enter键) |
有返回值的C函数要有return语句
提供基本整数类型的变式 |
指定字母和其他字符(也可表示较小的整数) |
不同进制在计算机内存储方式相同,都以二进制进行编码
常用于较小的数值场合以节省空间 |
占用空间大,适用于较大数值场合 |
用于非负值的场合,符号位用来表示另一个二进制的数 |
强调使用有符号类型的意图 |
复数的实部和虚部都基于实浮点数类型来构成
sizeof是C的内置运算符,以字节为单位给出指定类型的大小
该语句声明了一个名为name,有30个char类型的数组。
字符串常量是用双引号括起来的字符序列
给出字符串中的字符长度(包括空格和标点符号)
C预处理器为预处理指令(#开头)查找源代码程序,并在编译开始前处理它们。
处理器根据#include指令把另一个文件的内容添加到该指令所在位置
#define指令可以创建代表常量的符号
const限定符:创建不能修改的变量
printf()函数打印数据的指令要与待打印数据类型相匹配
一种输入函数,可读取不同格式的数据
递增递减运算符有很高的结合优先级,只有()的优先级比它们高
C语言每条语句以都英文输入状态下的“;”结束一条语句,不同的版编权程语言有不同的结束标志,Java,C也是以“;”作为一行语句的结束的标志,但也有不需要用“;”作为一行语句结束的语言。
一、C语言的语句以什么结束
C语言源程序的每一条语句都英文输入状态下的“;”结束一条语句。
不同的版编权程语言有不同的结束标志,Java,C++也是以“;”作为一行语句的结束的标志,也有不需要用“;”作为一行语句结束的编程语言,例如Python。Python是以空格去判断语句与语句之间的关系,一行语句结束后直接换行继续书写,即可。
C语言在输入头文件或写宏的时候不需要分号,直接换行结束。
二、C语言中字符串的结束标志是什么
'\0'就是8位的,因为字符类型中并没有对应的这个字符,所以这么写。'\0'就是 字符串结束标志。
'\0'是转译字符,意思是告诉编译器,这不是字符0,而是空字符。空字符\0对应的二进制为,而数字0为。
原来,在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。
因此当把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。有了'\0'标志后,就不必再用字符数组的长度来判断字符串的长度了。
所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。把字符数组str1中的字符串拷贝到字符数组str2中。串结束标志'\0'也一同拷贝。
三、C语言标识符有哪三类
C语言中的标识符可分为关键字、用户标识符、预定义标识符三类。
C语言规定,标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成,并且第一个字符必须是字母或下划线,不能是数字。
在使用标识符时还必须注意以下几点:
1、C语言虽然不限制标识符的长度,但是它受到不同编译器的限制,同时也受到操作系统的限制。例如在某个编译器中规定标识符前128位有效,当两个标识符前128位相同时,则被认为是同一个标识符。
2、在标识符中,大小写是有区别的,例如 BOOK 和 book 是两个不同的标识符。
3、标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号,因此,命名应尽量有相应的意义,以便于阅读和理解,作到“顾名思义”。
C语言程序设计 课程是高等院校计算机专业基础课程之一,其教学效果直接影响学生在计算机方面的应用。下面来个大家介绍c语言char的用法。
C语言基本类型:字符型(char)用法介绍
美国信息交换标准编码)。例如:ASCII 使用 65 来代表大写字母 A,因此存储字母 A 实际上存储的是整数65。注意:许多IBM大型机使用另一种编码——EBCDIC(Extended Binary-Coded Decimal Interchange Code 扩充的二进制编码的十进制交换码);不同国家的计算机使用的编码可能完全不同。
ASCII 的范围是 0 到 127,故而 7 位(bit)就足以表示全部 ASCII。char 一般占用 8 位内存单元,表示ASCII绰绰有余。许多系统都提供扩展ASCII(Extended ASCII),并且所需空间仍然在 8 位以内。注意,不同的系统提供的扩展 ASCII 的编码方式可能有所不同!
许多字符集超出了 8 位所能表示的范围(例如汉字字符集),使用这种字符集作为基本字符集的系统中,char 可能是 16 位的,甚至可能是 32 位的。总之,C 保证 char 占用空间的大小足以储存系统所用的基本字符集的编码。C 语言定义一个字节(byte)的位数为 char 的位数,所以一个字节可能是 16 位,也可能是 32 位,而不仅仅限于 8 位。
2. 声明字符型变量
字符型变量的声明方式和其它类型变量的声明方式一样:
以上代码声明了三个字符型变量:good、better,和 best。
3. 字符常量与初始化
我们可以使用以下语句来初始化字符型变量:
这个语句把 ch 的值初始化为 A 的编码值。在这个语句中,'A' 是字符常量。C 语言中,使用单引号把字符引起来就构成字符常量。我们来看另外一个例子:
把字符用双引号引起来构成字符串字面量,所以第三个语句是错误的。我们会在后续的教程中讨论字符串,现在暂且把它放下。
因为字符实质上是以数字的形式存储的,所以我们可以直接使用数字来初始化字符变量,或者给字符变量赋值:
在 ASCII 中,A 的编码是 65,所以对于使用 ASCII 的系统来说,这个语句等同于 char ch = 'A';。使用非 ASCII 的系统中,65 代表的不一定是 A,而有可能是其它任何字符,所以使用数字来初始化字符变量,或者给字符变量赋值是一种不好的风格,因为移植性太差了!但是,使用字符常量(例如 'A')来初始化字符变量,或者给字符变量赋值,字符变量得到的一定是我们所期待的字符的编码值。例如:
无论在使用任何编码的系统中,ch 都能够得到字符 A 所对应的编码值。这是因为编译器会自动把 'A' 转化成 A 所对应的编码值。因此,我们应该使用字符常量来初始化字符变量,或者给字符变量赋值;而不要用数字。
有趣的是,C 使用 int 类型来处理字符常量,而不是 char 类型。例如,在使用32位 int 的ASCII 系统中,以下代码
'C' 的编码值 67 被存储于 32 位的内存单元中;不过 ch 仍然存储于 8 位的内存单元中,只是它的值变成了 67。因此,我们可以定义形如 'good' 的古怪字符常量。因为每个字符的编码值占用 8 位的内存单元,所以这个常量刚好可以存储于 32 位的内存单元。然而,用这种字符常量初始化字符变量,或者给字符变量赋值的话,导致的结果是,字符变量只能得到字符常量的最后 8 位。也就是说,以下代码
ch 得到的是 'd' 的值。
以后,在没有特殊说明的情况下,我们讨论的都是 ASCII。
SOH 标题开始 FF 走纸控制 ETB 信息组传送结束
HT 横向制表 DC4 设备控制4 US 单元分隔符
有些 ASCII 字符是不可打印的。例如退格、另起一行、警报等。C 语言提供了两种方法来表示这种不可打印字符。
第一种方法是使用 ASCII 编码。例如,ASCII 编码中,7 用于表示警报:
第二种方法是使用特殊符号序列,也就是所谓的转义字符escape sequences)。参见下表:(
给变量赋值的时候,转义字符必须使用单引号引住。例如:
下面我们详细学习每个转移字符的含义。
\a(警报)是 ANSI C89 添加的,用于产生可听或者可视的警报。\a 产生的效果取决于硬件。一般来说,输出 \a 会产生鸣响。但是在某些系统,输出 \a 不会产生任何效果,或者仅仅显示一个特殊字符。标准明确指出,\a 不应该改变当前活跃位置(active position)。所谓活跃位置,是指显示设备(显示器、打字机、打印机等等)显示下一个字符的位置。以显示器为例,活跃位置就是指光标所处的位置,输出 \a 不会导致光标移动位置。
\b、\f、 、 、\t,以及 \v 都是输出设备控制符。退格符(\b)使当前行的活跃位置后退一个位置。换页符(\f)使活跃位置跳到下一页的开端。注:换页符可用于控制打印机换页,但不会导致 PC 机的显示屏换页。换行符( )使活跃位置跳到下一行的开端。回车符 ( ) 使活跃位置返回当前行的开端。水平制表符(\t)使活跃位置移动若干个位置(通常是8个)。垂直制表符(\v)使活跃位置换若干行。注:\v可用于控制打印机换若干行,但是不会导致PC机的显示屏换行。
\\、\',以及 \" 使我们可以把 \,' 和 " 用作字符常量。如果要打印以下句子:
我们需要使用如下语句:
\0oo 和 \xhh 是ASCII码的两种特殊表示形式。如果想用八进制ASCII码表示字符,可以在八进制数前面加上 \ ,然后用单引号引起来。例如:
打头的那些0可以省略,也就是说,写成 '\07' 或者 '\7' 都一样。无论有没有打头的0 ,7 都会被当成八进制数处理。
从 C89 开始,C提供了用十六进制表示字符常量的方法:在反斜杆后面写一个 x ,然后再写 1 到 3 个十六进制数字。例如:
注意:使用ASCII码时,要注意区分数字4的ASCII码是52 ,'4' 代表字符 4 ,而不是数字4。此外,尽管 ' ' 和 '\xa' ,'\a' 和 '\007' 是等价的,但是我们应该尽可能使用 ' ' 和 '\a' ,而不要用 '\xa' 和 '\007' 。这是因为前者易懂、便于记忆,而且移植性更高。而后者只对使用ASCII码的系统有效。和数字字符。例如:字符
printf 函数使用 %c 表示输出字符。因为字符是以 1 字节整数的形式存取的,所以,如果使用 %d 的话,输出的会是整数。例如:
/* 这个程序输出字符以及字符的整数编码 */
请各位自行编译执行此程序,查看其执行结果。输入字符后记得要按回车键。
printf 函数输出 ch 的值两次,第一次以字符的形式输出(因为格式限定符为 %c),第二次以十进制整数的形式输出(因为格式限定符是 %d)。注意:格式限定符只是用于指定数据的输出形式,而不是用来指定数据怎么存储。
6.字符类型的符号
某些编译器中,char 默认是有符号的(signed)。对于这类型的编译器来说,char 的表示范围通常是 -128 到 127 。而另外一些编译器中,char 默认是无符号的(unsigned)。对于这类型的编译器来说,char 的表示范围通常是 0 到 255 。一般来说,编译器的使用说明会注明它默认把 char 当作有符号的还是无符号的。