实型变量(浮点型变量)、字符型数据、字符串常量(变量)、字符常量(变量)

实型变量

1、实型变量的舍入误差
因为内存分配给实型变量的空间是有限的,所以当存储数据时,就会遇到舍入的问题,我们举个例子

void main()
{
float a,b;
a=123456.789e5;
b=a+20;
printf("%f\n",a);
printf("%f\n",b);
}

在这里插入图片描述

这个时候出现的结果就是这样,又因为a本身已经溢出了,加上20之后也是没产生变化的。

字符型数据

字符型数据包括字符常量和字符变量。

字符常量:用单引号括起来的一个字符。
例如:‘A’、‘M’ 都是合法字符常量。

在C语言中,字符常量有以下特点:
1)字符常量只能用单引号括起来,不能用双引号或其他括号。
2)字符常量只能是单个字符,不能是字符串。
3)字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如‘5’和5是不同的。‘5’是字符常量,不能参与运算。

字符变量
字符变量的类型说明符是char。字符变量类型定义的格式同整型变量:char a,b;

转义字符:
转义字符是一种特殊的字符常量。以反斜线“\”开头,后跟一个或几个字符。转义字符具有特定的含义,跟字符原有的意义相反,所以称为“转义字符”,比如程序中常见的\n,就是回车换行的意思。转义字符主要用来表示那些用一般字符不便于表示的控制代码。

转义字符的使用:

#include <stdio.h>

void main()
{
   int a,b,c;
   a=5;b=6;c=7;
   printf("ab c\tde\rf\n");
   printf("hijk\tL\bM\n");
}

这个程序最后输出的结果:
在这里插入图片描述
这里可以看到,通过使用转义字符,一些不太容易表示出来的字符都给表示出来了。

字符数据在内存中的存储形式及使用方法。

内存只分配给字符变量一个字节的空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。如x的十进制ASCII码是120,y的十进制ASCII码是121.对字符变量a,b赋予’X’和‘Y’值:
a = ‘X’;
b = ‘7’;
这里表示的是在a,b两个单元内存放120和55的二进制代码。

举个例子:

#include <stdio.h>
void main()
{
char a,b;
a = 120;
b = 121;
printf("%c,%c\n",a,b);
printf("%d,%d\n",a,b);
}

在放一下最后的输出结果:
在这里插入图片描述
可以很明显的看到。我们第一行是以字符形式输出(它会去找对应的ASCII表中的字符),第二行是以整型的形式打印出来,其实内存中存的二进制数就是120和121。同样的,将a = 120;替换成a = ‘x’;也是同样的效果。

【4.1】小写字母换成大写字母

#include <stdio.h>
void main()
{
char a,b;
a = 'a';
b = 'b';
a = a - 32;
b = b - 32;
printf("%c,%c\n%d,%d\n",a,b,a,b);//将a、b的字符形式显示出来,再将a,b的整型形式展现出来(即内存中存放的数值)
}

这段输出的结果如下:
在这里插入图片描述
为什么char内存分配的空间是一个字节呢?因为一个字节是8位,2^8是256,能容纳完整个ASCII表。

字符串常量:
由一对双引号括起的字符序列。例如"China",“boy"等都是合法的字符串常量。
字符串常量和字符常量是不同的量,字符常量由单引号括起来,字符串常量由双引号括起来;字符常量只能是单个字符,字符串常量则可以含一个字符或多个字符;可以将一个字符常量赋给一个字符变量,但是不可以将一个字符串常量赋给一个字符变量(k可以char a = ‘a’;但是不能char a = “a”;);字符常量占一个字节的空间,而字符串变量所占空间则为字符串中字节数加1,加的这个1就是字符串的结束标志”\0"(ASCII码为0)

  • 0
    点赞
  • 5
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

weixin_43671182

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值