【C语言】数据

一, 基本字符,标识符,关键字

  1. 基本字符:数字0~9,大小写字母,标点符号,特殊字符(空格、换行、制表符(空白字符),起分隔作用)
  2. 标识符:程序语言里各种对象的名字
    以字母或下划线“_”开头(“_”下划线看作是字母)的字母或数字组成的连续序列。关键字不可作为标识符
    合法:f2048,sx211_12a,abc_…
    不合法:123X(不是字母开头), a b1(包含了空格这样的特殊字符)
  3. 关键字(也叫做保留字):具有固定含义和用途的标识符
    每种高级语言都有一套关键字,C语言的关键字,ANSIC 共有32个
    (这些当然不需要死记,在以后敲代码的时间里会慢慢记住的)
    关键字

二,常量和变量

常量:在程序运行过程中,其值不能被改变的量

1.整型常量:即整数

  • 整数十进制写法 (%d以十进制形式输出整数)(常用):
    (1) 除0本身外首字符不能为0
    (2) 长整数写法:加后缀l或 L(不能有间隔)
    ◼ 123L 304l 25278L 1l 0L
    ◼ 小写l易与数字1混淆,建议用大写
    (3) 整数前可以加正负号

  • 整数八进制写法(%o以八进制形式输出整数):八进制→逢八进一
    (1) 0开始的数字序列
    (1) 只允许用0~7共8个数字
    ◼ 0123,06254,0531,0765432L
    (3) 八进制数值解读示例
    0123→ 1×82 +2×81 +3×80 = 64+16+3 =83

  • 整数十六进制写法(%x或%X以十六进制形式输出整数):十六进制→逢十六进一
    (1)16进制数的主要目的在于表示冗长的二进制数
    (2)共16个数字,除0~9外,用字母 a~f 或 A~F表示其余6个数字,分别代表10~15
    (3)每一位16进制数代表4位二制数
    (4)写法: 在C语言中用0x或0X开头的数字序列表示
    例子:0xA3B5→
    ◼ 值为10×163 +3×162+11×161+5×160=41909 的整数
    ◼ 表示二进制数1010 0011 1011 0101

2.实型常量:即小数

  • 普通十进制写法
    ◼ 数字序列,需包含小数点“.”(可以是首/末字符)
    例子: 3.2,3.,.93
  • 指数写法或科学记数法
    ◼ e/E 开头数字序列(可带符号),以10为底。可同时有小数点和指数,应注意:e/E之前必须有数字,后面的数字必须为整型
    例子:2E-3,2.45e17
  • 实数前可以有正负号

3.字符常量:以单撇号‘’括起的占一个字节常量

字符常量(如‘a’)存储在计算机存储单元中时,并不是存储字符(如:a)本身,而是以其代码(一般采用ASCII代码)存储的,例如:字符‘a’ 的ASCII代码时97,则在存储单元中存放的就是01100001(二进制数97)
熟记:‘0’ =48 ‘A’=65 ‘a’=97

  • (1)普通字符:用单撇号‘’括起来的一个字符(数字,大写字母,小写字母,标点符号)
  • (2)转义字符:以字符“\”开头的字符序列
    转义字符
Printf(“%d %c %c %c \101,’A’,65,’\101,’\x41’) ;//输出结果 65 A A A A

4.字符串常量:以双撇号“”括起的全部字符(但不包括双撇号本身)

  • 辨析:字符常量和字符串常量
    字符常量仅占1个字节,字符串常量占字符数加1个字节(系统自动在字符结尾加’\0’)

5.符号常量用#define指令(是一个编译预处理命令,它所定义的符号常量在预编译阶段被替换为对应的字符串。),指定用一个符号名称代表一个常量。

  • 如:#define PI 3.14
    #define TIMES (NUM/4) 也可以定义常量表达式(必须是已定义过的符号常量

则在编程过程中,用PI即可代替数字3.14,这样既可以减轻程序员的失误性,又可以做到“一改全改”

  • 注意:(1)行末没有分号!!
    (2)符号名称符合标识符要求
    (3)一般写在程序的最上面
    (4)为了与变量名相区别,习惯上符号常量用大写表示

6.枚举常量:枚举常量是一种用符号表示的整型数字常量,且由标识符表示。

(1)定义:使用关键字enum定义

(2)初始化和赋值:

  • 如果枚举常量被赋了值,则以给定值作为枚举符对应的常量值。
  • 当枚举常量没有给定值,只是一个标识符时,该枚举常量的值等于其前面枚举常量的值加1。
  • 如果该枚举常量是第一个标识符时且没有给定值,该枚举常量的值等于0。
    特别说明:枚举常量在初始化之后不可改变
enum {A, B, C, D, E = 50, F, G, H, I};	
//A=0,B=1,C=2,D=3,E=50,F=51,G=52,H=53,I=54
enum {JAN = 1, FEB, MAR, APR, MAY, JUN, JLY, AUG,SEP, OCT, NOV, DEC};`
//FEB=2,......,DEC=12)
变量:在程序运行过程中可以改变的量

变量必须先定义,再使用

1.变量的定义:指定变量的类型和名称

  • 变量类型便于编译系统给每一个变量名分配对应的内存空间,变量名便于被引用。
  • 可以同时定义多个同类型的变量
double x; 
int k, n, sum, count;

2.数据类型
C语言数据类型
各数据所占大小
(只有整型(包括字符型)数据可以用signed或unsigned修饰符,实型数据不能加)

3.变量的初始化:定义变量时指定变量的初始值

  • 可用数值或者数值表达式为变量做初始化
double s = (3 + 5 + 7) / 2.0;
long double x = 4.5L, y = 3.24L;
  • 初始化只能一次对一个变量做

    int i =j=2; (X)

4.变量的赋值

  • 赋值:用赋值运算符(=,赋值号)表示

  • 赋值语句:赋值号左边是赋值目标(变量),右边是提供值的表达式 如: x=5.0;

  • 左边变量和右边的表达值都有类型
    ◼ 规定 若表达式值与被赋值变量类型不同,该值先转换到变量类型的值,然后赋值。

5.全局变量:在函数之外定义的变量

  • 全局变量可以为本文件中其他函数所公用,有效范围为:从定义变量的位置开始到本源文件结束
    全局变量

6.局部变量:在函数内定义的变量

  • 定义局部变量可能的两种情况
    (1)在函数的开头定义 (在整个函数内有效)
    (2)在函数内的复合语句内定义(在程序块内有效)
    局部变量
  • 不同函数中可以使用同名的变量,他们代表不同的对象,互不干扰。他们也分别有自己的有效范围。
    如:1班有一名同学叫李华,2班也有一名同学叫李华,但这两个人并不是同一个人。1班的活动,只有1班李华参加有效,2班李华不可以冒名顶替哦~

三,运算符与表达式

运算符

  • 两个实数相除的结果是双精度实数,两个整数相除的结果是为整数
    C语言中采取“向零取整”,即取整后向零靠拢。5/3=1;-5/3=-1

  • %(取余)要求参加运算的运算对象为整数,结果也是整数

  • 括号是很好的控制计算顺序的手段,这样可以使你的程序计算逻辑更加清晰

  • 出现混合类型计算,程序自动将运算对象转换到相同类型的值,而后计算。
    自动类型转换原则
    ◼ 把表示范围小的类型的值转换为表示范围大的类型的值
    ◼ 各种类型的表示范围从小到大是int<long<float<double<long double

  • 自增自减
    ++i,–i (在使用i之前,先使i的值加(减)1)
    i++,i-- (在使用i之后,使i的值加(减)1)
    例子:x=2
    ①y=(x++ ) +2 → y=2+2=4 x=2+1=3
    x先与2相加,结果赋给y,然后再自加1
    ②z=(++x) +2 → z=3+2=5 x=2+1=3
    x先加1,再与2相加,结果赋给z

  • 关系运算符“等于”一定是两个等号!!!

  • 强制类型转换运算符:(类型名) (表达式)
    (double)a →(将a转换成double型)
    (int)(x+y)→(将x+y的值转换成int型)
    注意: 在强制类型转换时,得到一个所需类型的中间数据,而原来的变量的类型和数值均未发生改变。

  • 条件表达式:表达式1? 表达式2:表达式3
    表达式1:条件
    表达式2:条件成立时计算
    表达式3:条件不成立时计算
    例子:

a=5,b=8;
max=(a>b)? a:b;		//max=b=8
  • 复合赋值运算符:+=、-=、*=、/=、%=
    例子:sum=sum+n ; 等价于 sum+=n ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值