如何计算C语言语言中变量有几个字符?
C语言中的字符变量为什么可以用正整数赋值?要得到正常的字符,条件是什么?若用负整数赋值情况又将如何?
答:C语言中各种类型的变量其实都是内存地址。都可以通用的。
其中字符型最是最通用的一种,他是八位二进制的。 即一个字节,可以存任何一个字节的变量。
如: int a = 0xFF;
char *p = &a;
A在内存中的样式:
低地址高位。
则 *p==0xff;*(p+1)==0;
这个你明白了吧。 字符型可以存任何数据。
英文字符实际上是0-127的数字编码存在内存中。我们叫他们ACSII码。电脑在处理这些数据时比如打印:
printf,如果用%d就打印他的的十进制ASCII码,...全部
C语言中的字符变量为什么可以用正整数赋值?要得到正常的字符,条件是什么?若用负整数赋值情况又将如何?
答:C语言中各种类型的变量其实都是内存地址。都可以通用的。
其中字符型最是最通用的一种,他是八位二进制的。
即一个字节,可以存任何一个字节的变量。
如: int a = 0xFF;
char *p = &a;
A在内存中的样式:
低地址高位。
则 *p==0xff;*(p+1)==0;
这个你明白了吧。
字符型可以存任何数据。
英文字符实际上是0-127的数字编码存在内存中。我们叫他们ACSII码。电脑在处理这些数据时比如打印:
printf,如果用%d就打印他的的十进制ASCII码,而%C就打印字符。
若用负整数赋值情况又将如何?
负数实际上会变成正数,如-1==255,当然,你要强制转换成unsigned char型的。
下面举个例子:
#include
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;
} 点一下好评,真心的祝愿你万事如意!。收起