C语言中关于字符型变量。

C语言中的字符变量为什么可以用正整数赋值?要得到正常的字符,条件是什么?若用负整数赋值情况又将如何?

越详细越好,谢谢!

C语言中的字符变量为什么可以用正整数赋值?要得到正常的字符,条件是什么?若用负整数赋值情况又将如何?

答:C语言中各种类型的变量其实都是内存地址。都可以通用的。
其中字符型最是最通用的一种,他是八位二进制的。即一个字节,可以存任何一个字节的变量。
如: int a = 0xFF;
char *p = &a;
A在内存中的样式:
低地址<- 0xff,0,0,0 ->高位。

则 *p==0xff;*(p+1)==0;
这个你明白了吧。字符型可以存任何数据。

英文字符实际上是0-127的数字编码存在内存中。我们叫他们ACSII码。电脑在处理这些数据时比如打印:
printf,如果用%d就打印他的的十进制ASCII码,而%C就打印字符。

若用负整数赋值情况又将如何?

负数实际上会变成正数,如-1==255,当然,你要强制转换成unsigned char型的。
下面举个例子:
#include <stdio.h>

int main (int argc, char *argv[])
{
char ch = 97;
char ch1 = -1;

printf("ch = %d\n",ch);
printf("ch = %c\n",ch);

printf("ch1 = %d\n",ch1);
printf("ch1 = %d\n",(unsigned char)ch1);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-19
第2个回答  2008-05-19
因为字符都是用ASCII码表示的,所以每个字符都对应一个数字,范围从0-127.超多这个范围会出错
第3个回答  2008-05-19
正整数赋值实际上是以ASCII码的形式赋值
你可以查ASCII码表,某个范围内是正常字符

负整数赋值的话按溢出处理,溢出最后剩下的部分当作ASCII码。
第4个回答  2008-05-19
因为字符型变量占8位二进数的空间,表达范围为2的8次方(0-255),对于有符号型安符变量则为(-128-127),只要在这个范围内的数值都可以用字符型变量,这里你可能存在误解,以为字符型变量就是普通字符,它只是存储空间的概念。定义普通字符可用''括起来.

在C语言中字符型变量有哪些内容?
字符型变量中所存放的字符是计算机字符集中的字符。对于PC机上运行的C系统,字符型数据用8位单字节的ASCII码表示。程序用类型说明符 char来声明字符型变量:char ch;这条声明语句声明了一个字符型变量,标识符为ch。当以这种形式声明变量之后,程序可以在表达式中引用这个变量。字符数据类型事实上是8位的...

c语言中字符型变量只能存放一个字符吗?
c语言中字符型变量只能存放一个字符。C语言中的字符型变量是存放字符型常量的变量,其取值是字符型常量,即单个字符,不能是字符串。字符型变量的类型说明符是char。每个字符变量被分配一个字节的的内存空间,因此只能存放一个字符。字符值是以ASCⅡ码的形式存放在变量的内存单元之中的。

C语言中char是什么意思?
C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char *a;”则定义了变量a是字符指针类型。char是C语言整型数据中比较古怪的一个,其它的如int\/long\/short等不指定signed\/unsigned时都默认是signed,但char在标准中不指定为signed\/unsigned,编译器可以实现为...

字符型变量是什么?
字符型变量是用来保存单字符的一种变量:如:chara='a';而字符串就是用来保佑多个字符的变量,C语言中用字符数组来表式一个字符串如:charname[]={“abcdefghikllllll”}。字符和字符串的区别在于是用双引号,还是单引号,双引号表字符串,单引号表字符,如:“a”和'a'第一个是字符串,而第二...

ch在c语言中是什么意思
在c语言中,字符型数据是以ASCII码的形式存储的。ch在这里通常被指代为字符型变量,可以用来存储一个字符或字符序列。例如,可以使用ch变量来存储一个人的名字的首字母,或者一个字符串中的任意一个字符。在C语言中,字符型变量是一种非常灵活的变量类型。你可以使用ch变量来实现许多有趣的功能,比如...

谁能解释一下C语言中字符变量的作用
再次,从哲学的角度来看,老子有句名言:“天下大事必做于细,天下难事必做于易“,在C语言中内存对于程序员来说,就是一个字节数组,基本单位是字节,描述这种字节的基本数据类型即为char类型,实际上两个char变量即是一个short变量,4个char变量即是一个int型变量,同样的原理,100个char变量就是一...

c语言中字符变量是怎么回事
顾名思义,字符变量就是表示字符的变量,它只有一个字节。字符的编码采用美国国家信息交换码——ASCII码,用7位二进制表示,所以一个字节就足够了。在C\/C++中,字符变量和整型变量是可以不用强制转换就能互相赋值的,只是字符变量赋给整型时是赋给了字符的ASCII码,且只赋给了整型变量的最低字节(因为...

C语言中的字符变量用什么保留字说明
C语言中的字符变量用保留字char来定义。每个字符变量中只能存放一个字符。在一般系统中,一个字符变量在计算机内存中占一个字节。与字符常量一样,字符变量也可以出现在任何允许整型变量参与的运算中。C语言中的字符串常量是由一对双引号括起来的字符序列。注意不要将字符常量和字符串常量混淆,没有专门的...

c语言中, 字符型变量的输入中,getchar怎么用?最好举个例子,谢谢!_百度...
getchar()就是输入一个字符的意思,相当于scanf("%c",&d),变量d已经定义为字符型 举个简单的例子 include void main(){ char d;d=getchar();printf("%c\\n",d);}输入一个d,将输出d

c语言字符型变量的赋值方法.题目:ch为字符变量,ch='a+b',ch='\\0...
ch='\\0',ch ='7'+'9',ch=5+9 这三个都是可以的。ch='\\0'本身是一个字符,而且常用来表示字符串的结束。ch ='7'+'9'的值仍是一个字符,ch=5+9,也是可以的。char类型可以存储一个-128~127之间的整数。

相似回答