c语言如何持续输入字符直到指定字符结束_C语言 — 常量

常量的含义:

常量就是其值在程序运行过程中不可以改变的量。

一丶整型常量

在C语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。

1、十进制整型常量

  此种格式的整型常量只能出现 0~9 的数字,且可带正、负号。比如:

  0 1 364 28 -34

2、八进制整型常量

     此种格式的整型常量以数字0开头的八进制数字串。其中数字为 0~7。例如:

  0111十进制 73、 011十进制 9、 0123十进制 83、

3、十六进制整型常量

  此种格式的整型常量以0x或0X(x是大写)开头的十六进制数字串。其中每个数字可以是 0~9、a~f或 A~

  F 中的数字或英文字母。例如:

  0x11十进制 17、 0Xa5十进制 165、 0x5a十进制 90

二丶实型常量

实型常量又称实数浮点数。在C语言中可以用两种形式来表示一个实型常量。

1、小数形式

小数形式的实型常量由两部分组成:数字和小数点。如:0.1212..12都是合法的实型常量。

2、指数形式

在C语言中,以"e"或"E"后跟一个整数来表示以10为底的幂数。如:2.306可以表示为0.2306E1、2.306e0、23.06e-1。C语言语法规定:

字母e或E之前必须要有数字,且e或E后面的指数必须为整数。

注意:在字母e或E的前后以及数字之间不得插入空格。

三丶字符型常量

字符常量是由一对单撇号括起来的单个字符,如 'a'、'D'、'?'、'$'。在 C 语言中,除了字符常量外还有字符串常量,顾名思义就是多个“字符”串在一起。与字符常量有所不同,字符串常量是用“双撇号”括起来的多个字符的序列,如"How are you"、"I love you"、"你好"。当然,只要是“双撇号”括起来的,就算只有一个字符也叫字符串,如"a"。字符常量 'a'与字符串常量"a"是不同的。

一个字符在内存中只占一字节,而字符串本质上是多个字符组成的字符数组。C语言规定,在每一个字符串常量的结尾,系统都会自动加一个字符'\0'作为该字符串的“结束标志符”,系统据此判断字符串是否结束。这里要特别强调一点:'\0'是系统自动加上的,不是人为添加的。'\0' 是 ASCII 码为 0 的字符,它不会引起任何控制动作,也不是一个可以显示的字符。比如字符串常量"CHINA",表面上看它只有 5 个字符,但实际上它在内存中占 6 字节,'C'、'H'、'I'、'N'、'A'、'\0' 各占一字节。如果要输出该字符串,'\0' 不会输出。也就是说,虽然实际上总共有 6 个字符,'\0' 也包括在其中,但输出时 '\0' 不会输出。系统从第一个字符 'C' 开始逐个输出字符,直到遇到 '\0',则表示该字符串结束,停止输出。

也就是说,在字符串常量中,如果“双撇号”中能看见的字符有 n 个,那么该字符串在内存中所占的内存空间为 n+1 字节。

# include int main(void){    printf("%d\x20", sizeof(""));    printf("%d\x20", sizeof("a"));    printf("%d\x20", sizeof("CHINA"));    printf("%d\x20", sizeof("How are you"));    printf("%d\x20", sizeof("I love you"));    printf("%d\n", sizeof("你好"));    return 0;}

输出结果是:
1 2 6 12 11 5

第一个“双撇号”中什么都不写,则只有 '\0' 一个字符,所以只占一字节。第二个"a"中有 1 个可见字符,占 2 字节。第三个"CHINA"有 5 个可见字符,占 6 字节。第四个"How are you"中,空格也是字符,也算是可见的,所以总共有 11 个可见字符,共占 12 字节。第五个"I love you"共 10 个可见字符,占 11 字节。第六个"你好"为什么占 5 字节?有 2 个可见字符不是应该占3字节吗?C 语言规定,1 个英文字符占 1 字节,而 1个 中文字符占 2 字节,就算是中文的标点符号也是占 2 字节。所以两个汉字占 4 字节,加上 '\0' 总共是 5 字节。

四丶符号常量

  如果一个程序的功能是求解一个长方体的体积,其中长方体的高度是固定的,使用一个符号名代替固定的常量值,这里使用的符号名就称之为符号常量。使用符号常量的好处在于可以为编程和阅读带来方便。

举例:

  本实例使用符号常量来表示圆周率,在控制台上显示文字提示用户输入数据,该数据是有关圆半径的值。得到用户输入的半径,经过计算得到圆的面积,最后将结果显示出来。

#include#define PAI 3.14                        /*定义符号常量*/int main(){  double fRadius;                      /*定义半径变量*/  double fResult=0;                    /*定义结果变量*/  printf("请输入圆的半径:");           /*提示*/  scanf("%lf",&fRadius);              /*输入数据*/  fResult=fRadius*fRadius*PAI;        /*进行计算*/  printf("圆的面积为:%lf\n",fResult); /*显示结果*/  return 0;                           /*程序结束*/}

运行结果:

222ae6a1883c3058c358560a2967e561.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值