数据:
程序设计的对象就是数据:数据分为常量和变量。
常量:在程序的执行期间值不变,被称为常量。常量一般包括字面常量和常量标识符。
变量:在程序的执行期间值可变的数据对象。
不论常量还是变量都具有类型属性,任意一个特定的常量或者变量都属于某一个数据类型。
字面常量
概念:常量可以直接书写在程序中,称为字面常量。
(1)整数类型常量
整数类型常量是一个数字序列。可用十进制、八进制、十六进制。其中,十进制的整数类型常量是一个“非零开头的数字序列”。
(2)浮点类型常量
浮点类型常量通常有两种表示形式:定点形式、浮点形式。
定点形式:
1.数字序列,后面跟一个小数点,如1234.
2.数字序列,前面跟一个小数点,如.1234
3.数字序列,后面跟一个小数点,在跟一个数字序列,如123.456
其值代表的就是是十进制计数法中的一个浮点数值。
浮点形式(指数形式、科学形式)
常被表示为:某一个称为尾数的基础值乘以10的某一个整数次幂。尾数可以是一个整数或者定点表示形式的浮点类型常量,放在最前面,后面紧跟字符E或e和称为指数的一个整数。
例:.29e-5 表示0.29乘以10的-5次方
534E+5 表示534乘以10的5次方
不论是浮点形式还是定点形式,浮点类型常量在计算机内部的表现形式是一样的。
(3)字符型常量
字符型常量是有单引号括起来的字符。
(4)字符串行常量
字符串型常量是由双引号括起来的一串字符。
(5)字符转义符
在字符型和字符串型常量中经常需要表示一些不可打印的字符。这些字符无法或者很难直接输入。例如,回车符、空白符、控制字符等。使用字符转义符可以表示这些字符。
字符转义符的结构是在反斜杠后紧跟一个字符或证书,在C语言中反斜杠作为字符转义符的专用符号使用。
在反斜杠后跟一个八进制或十六进制整数时看作ASCII码值对应的整数的字符。如:
\52 表示字符*
\101 表示字符A
\x41 表示字符A
\0 表示字符null
常量标识符
有时在程序中直接书写一个常量的字面值不能表明该常量的明确含义,另一方面,有时一个常量可能在程序中多次被用到,一旦要对该常量进行修改,就有可能产生遗漏。因此,可以引进一个标识符来代表常量。称表示常量的标识符为常量标识符。
格式:#define 标识符 常量
变量
变量:在程序期间可变得数据对象成为变量。
编译程序可以把高级语言翻译成机器语言时,给每一个变量都分配一块适当的存储空间,以便随时保存变量的值。
变量的地址就是这块存储区的首地址,变量的值就是这块存储区中现行保存的值
(1)变量声名
格式:T id,id,id, .........,id;
1.每个id是一个标识符,是由该变量声名引进的变量,也是相应变量的名字
2.T是类型,可以是任何一种类型符。它决定了列在它后面标识表中的标识符所代表的变量的类型属性。
(2)变量指针(地址)
在C程序当中,经常使用一个变量的存储区及其地址,一次C给出一个运算符“&”,该运算符是一个单目运算符,把它放在一个变量前,可以求出相应的变量的地址。
例 &v
将得到v的地址,该地址也被称为v的指针,运算符&也称为指针运算符。
(3)变量初值
格式:id=初值;
变量在声名使被赋予初值,则在程序开始运行时,它便取得了相应值
注意:
(1)从程序的静态行文顺序看,变量的声名必须出现在所有使用之前。(想用变量先声明)
(2)从程序的动态执行顺序看,为变量赋值必须出现在所有使用值之前。(想用变量的值先赋值)
(3)从程序的静态行文顺序看,在变量声名中给变量赋初始值,相应的常量表达式必须是可以计算的。(赋值的时候,等号后边数值是可以计算的)
表达式
表达式是C程序中完成各类运算符的基本部分.表达式由运算符连接起来的运算分量组成
运算分量包括变量、常量、函数调用、带括号的表达式
C语言的表达式和数学的表达式的不同
(1)所有字符必须写在一条水平线上,不允许出现上、下角标和分数线等。
(2)所有运算分量之间必须有运算符,a乘b不能写成ab,必须写成a*b
(3)除了上下标使用方括号外,所有括号必须使用圆括号
(4)注意连续的关系运算,在数学中a<b<c,在语言中得写成(a<b)&&(b<c)
c语言的计算顺序
(1)括号内的表达式先计算
(2)先计算优先级高的,再计算优先级低的
(3)C运算有结合方向,分为“左结合”和“右结合”。若两个运算符同级且相邻,则应该按运算符结合方向的规定从左向右或从右向左计算
(4)在C语言中,一个运算符的多个运算分量的计算次序是依赖于实现的,这意味着他们可能从左向右计算,或从右向左计算,或者同时计算。计算的次序不同,可能导致各个运算分量的值不同。
注意:在编写程序是,表达式中一个运算符的各个运算分量的值千万不要依赖于计算他们的次序。
表达式语句:一个表达式后跟一个分号“;”,表达式语句的语义是计算表达式的值。