C语言类型问题 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

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

int和float在内存中存储结构是不一样的

http://blog.csdn.net/chlaws/archive/2007/12/13/1933274.aspx

对啊,你想10/3=3.333,难道3.333*3等于10?

c语言类型的问题?~

#include

int main ()
{
char ch = 'A', ch1 = 65, ch2 = '2' - 2, ch3 = 97;
printf ("%c %d
", ch, ch);
printf ("%c %d
", ch1, ch1);
printf ("%c %d
", ch2, ch2);
printf ("%c %d
", ch3, ch3);
return 0;
}

原因有两个:
1. (a+b>6)?
是因为你的计算是在编译器遇到 unsigned int 和 int 的计算时, 自动将 int 转为 unsigned int 处理
a+b 就会是无符号的整形数字, a+b>6 就会返回真值 true, 执行 printf(">6")

2. printf("
%d",a+b);
是因为是用格式化输出符号是%d 输出为整形.
下面的格式供你参考
%d 输出为整形, %ld 输出为长整型, %hd 输出为短整型 %u 输出为无符号整形, %lu 输出为无符号长整形, %hu 输出为无符号短整型.

c语言问题
答:程序的第7和第8行是把将两个小写字母a和b转换成大写字母a和b。‘a’的ascii码为97,而‘A’为65,‘b’为98,‘B’为66。从ascii代码表中可以看到每一个小写字母比它相应的大写字母的ascii码大32。c语言允许字符数据与整数直接进行算术运算,即‘a’+32会得到整数97,‘a’-32会得到整数65。

商务谈判语言有哪些类型?其重要作用是什么?
答:商务谈判语言各种各样,从不同的角度,可以分出不同的语言类型。(一)按语言的表达方式分为有声语言和无声语言有声语言是指通过人的发音器官来表达的语言,一般理解为口头语言。这种语言借助于人的听觉交流思想、传递信息。无声语言是指通过人的形体、姿势等非发音器官来表达的语言,一般解释为行为语言。这种语言借助于...

C语言中静态存储类型问题
答:楼主你好!代码分析如下!include <stdio.h> int func(int x){int y=0;static int z=3; //此处是静态变量,静态变量直到整个程序运行完才释放,局部变量则是执行完该段函数后就释放,这里的y,就是跟例子,所以每次运行fun函数y都是0,然后y++后为1,而z则不同,由于for循环执行了两次,第...

C语言问题
答:int a,Unsigned int b, a=-2,b=2.求a+b可以这样做:include <stdio.h> int main(int argc, char *argv[]){ int a;unsigned int b,c;a=-2;b=2;c=a+(int)b;printf("%u",c);return 0;} 就是把b强制转换成int型的,再加上a,赋值给unsigned型的c。这样结果就是0 现在以16位...

孩子语言障碍怎么办?
答:震荡、跳跃、抚触等游戏来训练前庭功能。培养听知觉。在日常中应多与孩子互动,下达简单的指令让孩子执行、回答,这对于培养听知觉有重要的作用。在纠正过程中,需要根据孩子的具体情况进行个体化的训练计划,并且需要耐心和时间。如果发现孩子有语言发育问题,建议及时寻求专业的医疗或康复机构的帮助。

C语言强制类型转换问题
答:谁告诉你的?还是你亲自测试过的?什么环境,什么版本的编译器?据我了解,以及据我测试,这两种情况的输出应该都是0.000000 因为你的a定义的是int类型,所以1/a和1/2并没有不同,计算结果都是0.5再取整,就变成了0.0。如果你定义为double类型,那就是0.5,转成double还是0.5 一般C语言中,...

c语言double类型输出问题及字符输入问题
答:double要用%lf 你输入字符串时,肯定按了回车,而回车实际上输入了2个字符,第1个被用来确认scanf结束,还有一个仍然保留在了缓冲区内,被scanf("%c",&ch);读到了,这个字符是个控制字符,所以不可见.在任何读取字符的语句之前,你最好用fflush(stdin);来清空一下缓冲区....

关于C语言int类型输出的问题
答:5.2 5表示宽度至少为5位,不够以空格填充,大于5位的时候按照实际宽度输出 2表示最大小数位数 以下内容 copy 希望对你有帮助 int printf(const char *format,[argument]);format 参数输出的格式,定义格式为:[flags][width][.perc] [F|N|h|l]type 规定数据输出方式,具体如下:1.type...

C语言问题
答:选C t=1,注意是一个=,意思是将1赋值给t,因此这个while循环永远为真,表达式的值为1 这个跟两个=是不同的,两个=表示逻辑判断相等,如果是两个=,t==1就永远为假,表达式的值为0

C语言问题?
答:符号位为 1 ,所以为负数,负数的补码是:取反,再加一。于是, 去掉符号位,c 取反就是 000 1101 再加一就是 000 1110,换算成十进制就是 14,在加上符号位,于是就是 -14 了 不知道讲清楚没。。。要学好 c 语言,一定要了解计算机。尤其是内存。还有~有的时候标准和实现是两码事。。。