C语言之常量与变量(2)

一:常量

C语言中有四种常量类型

  • 整型常量
  • 实型常量
  • 字符型常量
  • 字符串常量
  • 符号常量

整型常量

①:整型常量可以用八进制十进制十六进制3种形式来表示,分别采用不同的前缀

八进制:采用0,例如0214

十进制:不加任何前缀,例如214

 十六进制:采用0x/0X,例如0x214、0X214

:在整型常量后添加后缀“L”“l”,表示长整型数,如:100L、25L、0Xae5l等

:用后缀“U”“u”表示无符号整数,如: 22U、87u等

✳:注意:整型常量的数字之间不允许嵌入空格、逗号或非数字字符

✳:后缀的不同,影响的只是存储空间,对计算结果并无影响  100L+25L与100+25其结果在数学上没有区别

整型数据类型

①:基本整型 (int型)字节为4   用于存储整数  例 int a = 10;整形数据是不带小数的数字 

短整型short int字节为2  

长整型long int字节为4

双长整型long long int字节为8


实型(浮点型)常量

①:十进制小数形式:   如123.456,-56.79,0.0,12.0等

指数形式: 如12.34e3(表示12.34✖10^{3}​),-346.87e-25(表示-346.87✖10^{-25}​)

✳:规定eE代表以10为底的指数,但注意e和E之前必须有数字,且e和E后必须为整数

✳:实型常量默认为是double型,但可以通过添加后缀”F/f”来表示该实型常量为float型

例如 3.14f、12e-4F   

✳:注意实型常量中不得出现任何空白符号

实型(浮点型)数据类型

浮点数据就是带小数的数字

①:float      单精度浮点型)     字节为4   用于存储小数      能得到6位有效数字            

②:double   (双精度浮点型) 字节为8   用于储存位数更多的小数   能得到15位有效数字

③:long double (长双精度型)  字节为16   范围更精确    


字符常量

①:普通字符   即用单撇号括起来的一个字符,如'a''Z''3''?''#'

②:转义字符  即以字符"\"开头的字符数列

✳:字符常量只允许有一个字符,如果需要多个字符,请使用字符串常量

✳:数字被定义为字符型后,其数值改变。如4和’4’代表不同的量,'4'是字符常量,而4是整型常量。

✳:转义字符主要用来表示那些无法输出的控制字符或者特殊字符

字符常量数据类型

①:char  字节为1       用于存储单个字符       

②:注意字符数据只占一个字节,放0~255范围内的整数。


⭐字符串常量

①:用一对双引号""括起来的一个字符序列        如:"Hello ""a""$13.14"

②:存储:系统自动在字符串常量后面加上"\0"作为字符串结束标志。
如字符串”china”在内存的存储情况为:

 “\0”是一个ASCII值为0的不可显示字符,不引起任何控制操作。

✳:字符常量字符串常量 的区别
(1)定界符不同:字符常量使用单引号,而字符串常量使用双引号;
(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;
(3)存储形式不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效字符的ASCII码值外,还要存储一个结束标志“\0”


⭐符号常量

①:定义  用一个标识符代表一个常量的符号,称为符号常量,即以标识符形式出现的常量。

②:格式   #define 标识符 常量

③:好处  含义清楚,能做到一改全改。

✳:注意

(1)预处理命令后不用加分号;!!!

(2)符号常量名用大写变量名用小写,以示区别。

(3)区分符号常量和变量,不要把符号常量误认为变量。符号常量不占内存,只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,故不能对符号常量赋新值。


⭐常变量

   定义变量时,前面加一个关键字const   eg:const int a=3;

②  常变量与常量的异同    

常变量具有变量的基本属性:有类型,占存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用

③ 常变量与符号常量的异同

符号常量PI和常变量pi都代表3.1415926,在程序中都能使用.但二者的性质不同:定义符号常量用#define指令,它是预编译指令,知识用符号常量代表一个字符串,在预编译时候仅进行字符替换,在预编译后,符号常量就不存在了(全置换成3.1415926了),对符号常量的名字是不分配存储单元的.而常变量要占用存储单元,有变量值,知识该值不变而已
 

✳:常变量具有符号常量的优点,使用更方便.有了常变量后,可以不必多用符号常量


⭐常量总结思维导图 

 ⭐基本数据类型思维导图

二:变量

在程序运行过程中其值可以改变的量

作用存储数据

⭐变量的定义

①:使用变量前先定义变量,变量名就是标识符,注意区分变量名变量值两个不同的概念,变量占据内存中一定的存储单元

✳:注意

 <1>多个变量名之间用逗号进行分隔,数据类型和变量名之间至少用一个空格进行间隔。


 <2>变量的定义语句通常放在函数体的开始部分,变量定义语句的位置直接影响变量的作用域。


  <3>若变量定义语句放在函数体内,则要集中在函数的开始,不能与其他语句混放,否则错误。

  <4>C程序的每个变量都有固定的类型,不允许在程序的同一处将同一变量定义为不同类型


⭐变量的赋值

赋值方式

①: 先声明再赋值

int num;              //定义一个整形变量,变量名字为num
num = 100;           //给num变量赋值为100  
int a,b,c;         //同时声明多个变量,然后分别赋值
a=1;             
b=2;
c=3;
printf("%d\n",num);  //打印整形变量num

②: 声明的同时赋值

#include<stdio.h>
 int main()
{
int num;     //声明
num=1;       //赋值(定义)/赋值表达式语句
float a=2;   //声明的同时初始化变量
return 0;
}

✳:注意:  int x=y=z=2;这是错误的      定义里不能连续赋值

    因为C语言里的 = 右结合并赋值         2会赋值给z,z会赋值给y,y会赋值给x

此时会出错是因为z是没有预先定义的,后面代码正确的原因是提前定义分配了内存

正确为: int x,y,z;

                      x=y=z=2 ;             

或者写为:int x=2,y=2,z=2;(这是声明的同时赋值


⭐变量的初始化

在定义一个变量的同时赋给它初值      如 int a=1,b=2

✳:注意

  1. 可以对被定义的部分变量初始化。如,int a=1,b=2,c;
  2. 如果对几个变量初始化为同一个值,应写成:int a=5,b=5,c=5;不能写成:int a=b=c=5;
  3. 变量不一定要进行初始化,但使用变量之前应该赋给变量一个确定的值

⭐变量总结

  • 变量——杯
  • 变量名——杯子的号码
  • 变量类型——所装的材料名称
  • 变量值——所装的东西多少

三:输出练习

实型(浮点型)变量

#include <stdio.h>
int main()
{
  float a;
  double b;
  a=6666.666666;
  b=6666.6666666666666666;
  printf("a=%f\nb=%f",a,b);
}

输出结果:

✳:a是单精度浮点型,最多有7位有效位数,整数已占4位,故小数部分3位之后的均为无效数字。

b是双精度浮点型,有效位最多为16位,但"%f"默认小数位数保留6位,其余部分四舍五入


字符变量

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

输出结果:

✳:输出形式取决于函数printf()格式串中的格式符

当格式符为"%c"时,对应输出的变量值为字符,当格式符为"%d" 时,对应输出的变量值为整数


⭐符号常量

#define PRICE 30
#include<stdio.h>
int main( )
{
int num,total;
num=10;
total=num*PRICE;
printf("total=%d\n",total);
}

输出结果:


四:ASCII码表

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值