‘壹’ c语言的基本类型在内存中怎么储存的
C语言的基本类型在内存中以二进制的形式储存的。
1、整型数据:所有整数(正负零)在内存中都是以补码的形式存在。对于一个正整数来说,它的补码就是它的原码本身。对于一个负整数来说,它的补码为原码取反再加1。
2、字符型数据:把字符的相对应的ASCII码放到存储码单元中,而这些ASCII代码值在计算机中同样以二进制补码的形式存放的。
3、实型数据:也叫浮点数,在计算机中也是以二进制的方式存储,关键在于如何将十进制的小数转化为二进制来表示。
扩展资料:
根据计算机的内部字长和编译器的版本,C语言的基本类型表示的数的长度范围是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~+32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。
如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。长整数158L和基本整常数158在数值上并无区别。
‘贰’ 字符型常量和字符串常量的用法是什么区别
1)
形式上:
...字符常量是单引号引起的一个字符
...字符串常量是双引号引起的若干个字符
2)
含义上:
...字符常量相当于一个整形值(ascii值),可以参加表达式运算
...字符串常量代表一个地址值(该字符串在内存中存放位置)
3)
占内存大小
...字符常量只占一个字节
...字符串常量占若干个字节(至少一个字符结束标志)
‘叁’ 程序C语言中基本数据类型(字符、整数、长整数、浮点)
第2章 数据类型、运算符与表达式
本章主要介绍C语言的各种数据类型、运算符和表达式。
2.1 C语言的数据类型
C语言的数据类型具体分类如下:
基本类型:分为整型、实型(又称浮点型)、字符型和枚举型四种。
构造类型:分为数组类型、结构类型和共用类型三种。
指针类型
空类型
2.2 常量和变量
2.2.1 常量
1、常量的概念:在程序运行过程中,其值不能被改变的量称为常量
2、 常量的分类:
整型常量
实型常量
字符常量
符号常量
3、常量的类型,可通过书写形式来判别。
2.2.2 变量
1、变量的概念:在程序运行过程中,其值可以被改变的量称为变量
2、变量名:每个变量都必须有一个名字——变量名,变量命名遵循标识符命名规则
3、变量值:在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值
4、标识符命名规则:
只能由字母、数字和下划线组成,且以字母或下划线开头
有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃
C语言的关键字不能用作变量名
注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。
习惯上,变量名和函数名中的英文字母用小写,以增加可读性。
5、变量的定义与初始化
在C语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)变量定义的一般格式
数据类型 变量名[, 变量名2……];
例如,float radius, length, area;
(2)变量初始化的一般格式
数据类型 变量名[=初值][, 变量名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型数据
2.3.1 整型变量
1、分类
根据占用内存字节数的不同,整型变量又分为4类:
(1)基本整型(类型关键字为int)。
(2)短整型(类型关键字为short [int])。
(3)长整型(类型关键字为long [int])。
(4)无符号整型。无符号型又分为无符号基本整型(unsigned [int])、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整数。
2、占用内存字节数与值域
上述各类型整型变量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型(2字节)≥short型(2字节)。
显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-1-1);无符号整型变量的值域为:0~(2n*8-1)。
例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-1-1),即-32768~32767;一个unsigned型变量的值域为:0~(22*8-1),即0~65535。
第2章 数据类型、运算符与表达式
本章主要介绍C语言的各种数据类型、运算符和表达式。
2.1 C语言的数据类型
C语言的数据类型具体分类如下:
基本类型:分为整型、实型(又称浮点型)、字符型和枚举型四种。
构造类型:分为数组类型、结构类型和共用类型三种。
指针类型
空类型
2.2 常量和变量
2.2.1 常量
1、常量的概念:在程序运行过程中,其值不能被改变的量称为常量
2、 常量的分类:
整型常量
实型常量
字符常量
符号常量
3、常量的类型,可通过书写形式来判别。
2.2.2 变量
1、变量的概念:在程序运行过程中,其值可以被改变的量称为变量
2、变量名:每个变量都必须有一个名字——变量名,变量命名遵循标识符命名规则
3、变量值:在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值
4、标识符命名规则:
只能由字母、数字和下划线组成,且以字母或下划线开头
有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃
C语言的关键字不能用作变量名
注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。
习惯上,变量名和函数名中的英文字母用小写,以增加可读性。
5、变量的定义与初始化
在C语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)变量定义的一般格式
数据类型 变量名[, 变量名2……];
例如,float radius, length, area;
(2)变量初始化的一般格式
数据类型 变量名[=初值][, 变量名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型数据
2.3.1 整型变量
1、分类
根据占用内存字节数的不同,整型变量又分为4类:
(1)基本整型(类型关键字为int)。
(2)短整型(类型关键字为short [int])。
(3)长整型(类型关键字为long [int])。
(4)无符号整型。无符号型又分为无符号基本整型(unsigned [int])、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整数。
2、占用内存字节数与值域
上述各类型整型变量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型(2字节)≥short型(2字节)。
显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-1-1);无符号整型变量的值域为:0~(2n*8-1)。
例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-1-1),即-32768~32767;一个unsigned型变量的值域为:0~(22*8-1),即0~65535。
实型数据
2.4.1 实型变量
C语言的实型变量,分为两种:
(1)单精度型:类型关键字为float,一般占4字节(32位)、提供7位有效数字。
(2)双精度型:类型关键字为double,一般占8个字节、提供15~16位有效数字。
2.4.2 实型常量
1、表示形式
实型常量即实数,在C语言中又称浮点数,其值有两种表达形式:
(1)十进制形式:例如3.14、9.8。
(2)指数形式:<尾数>E(e)<整型指数>。例如3.0E+5等。
2、关于类型
实型常量不分float型和double型。一个实型常量,可以赋给一个实型变量(float型或double型)。
2.5 字符型数据
2.5.1 字符常量
1、字符常量的定义
用一对单引号括起来的单个字符,称为字符常量。
例如,‘A’、‘1’、‘+’等。
2、转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠“\ ”开头的转义字符。
注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:‘\\’、‘\’‘。
[案例2.1] 用转义字符输出可打印字符和不可打印字符。
main()
{
printf(“\x4F\x4B\x21\n”); /* 等价于printf(“OK!\n”); */
printf(“\x15 \xAB\n”);
}
程序运行结果如下:
OK!
2.5.2 字符变量
字符变量的类型关键字为char,一般占用1字节内存单元。
1.变量值的存储
字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。
例如,
char ch1, ch2; /*定义两个字符变量:ch1,ch2*/
ch1=’a’; ch2=’b’; /*给字符变量赋值*/
2.特性
字符数据在内存中存储的是字符的ASCII码—— 一个无符号整数,其形式与整数的存储形式一样,所以C语言允许字符型数据与整型数据之间通用。
(1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。
[案例2.2] 字符变量的字符形式输出和整数形式输出。
main()
{
char ch1,ch2;
ch1='a'; ch2='b';
printf(“ch1=%c,ch2=%c\n”,ch1,ch2);
printf(“ch1=%d,ch2=%d\n”,ch1,ch2);
}
程序运行结果:
ch1=a,ch2=b
ch1=97,ch2=98
(2)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。
[案例2.3] 字符数据的算术运算。
main()
{
char ch1,ch2;
ch1=‘a’; ch2=‘B’;
printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32); /*字母的大小写转换*/
/*用字符形式输出一个大于256的数值*/
printf("ch1+200=%d\n", ch1+200);
printf("ch1+200=%c\n", ch1+200);
printf("ch1+256=%d\n", ch1+256);
printf("ch1+256=%c\n", ch1+256);
}
程序运行结果:
ch1=A,ch2=b
ch1+200=297
ch1+200=)
ch1+256=353
ch1+256=a
‘肆’ 字符常量和字符串常量到底有什么区别啊
字符常量代表一个不可变化的固定数值值,这个字符出现就代表这个数值;字符变量可以存放定义类型的数值,而这个数值是可以变化的。
‘伍’ 什么是字符串常量和字符串变量啊
字符串常量是一对双引号括起来的字符序列。字符常量可以赋值给字符变量,如"char b='a';",但不能把一个字符串常量赋给一个字符变量,同时也不能对字符串常量赋值。
字符串变量是存放字符常量的变量,其取值是字符常量,即单个字符。字符变量的类型说明符是char。每个字符变量被分配一个字节的的内存空间,因此只能存放一个字符。并且字符值是以ASCⅡ码的形式存放在变量的内存单元之中的。
(5)字符型常量在内存中的存储形式是什么扩展阅读
字符串常量的存储:
字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符‘ ’自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占(n+1)个字节。可以输出字符串,例如:
printf("how do you do.");
字符串变量的说明:
1、字符变量在内存中占一个字节。
2、在内存中,是把字符对应的ASCII码值放到存储单元中。
3、字符型数据与整型数据之间可以通用。
‘陆’ 字符型常量在内存中存放的是
BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
内码是指整机汉字系统中使用的二进制字符编码
这个题应该选择A
‘柒’ 字符型常量在内存中存放的是
A。是ASCII
BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
内码是指整机汉字系统中使用的二进制字符编码
‘捌’ c语言char型常量在内存中是以什么形式存放的
char型常量(字符),在计算机中是按其ASCII值进行存储,ASCII是"整型类"数据,在内存中全部以补码形式进行存放。
补码是一种二进制数据表示形式。整数分为正数、负数和零,计算机设计初期,规定,以字节的最高位表示符号,其余位表示数值,来表示有符号数据,这就是原码。但原码表示法中出现了”正0“和”负0“的表示现象,因此,又研究出来了补码概念,最终用补码来进行数据的存储。
规定:
正数的原码与补码相同。
负数的补码=反码+1,
反码是原码符号位不变,其余位取反。
如:以一字节整数为例
-1的原码为:1000 0001
-1的反码为:1111 1110
-1的补码为:1111 1111
‘玖’ 【19】在C语言中,char型数据在内存中的存储形式是( )
1、答案是D
在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。
C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。
2、原码、反码和补码是对数字的二进制定点的表示方法。
(9)字符型常量在内存中的存储形式是什么扩展阅读:
1、在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0)
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
2、计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。