深圳市华胄科技有限公司 >> MCU专题 >> 单片机编程


单片机c语言,10小时学会C 语言 (三)



提交者 电子007  在  2008-3-17 11:53:39 

上一篇 下一篇
单片机c语言,10小时学会C 语言 (三)
第三章 常数与变数
C 语言的数据可分为常数(constant)及变量(variable),常数指的是固定不变的数,例如:0,1,2 等数值,或是用双引号定义的字符串,我们也称之为字符串常数。变量指的是数值可以改变的数,例如:一个整数变量,我们可以把它设成 1,然后再改为 10,或是其它的整数数值。一个程序若没有变量,那纯粹只是将常数秀出来而已,好比是用文字编辑器编辑一个档案,再用 type 把它秀出来一样。有了变量,就可以做不同的变化。


◎ 变量的型态──Char, int, long, float, double etc.。


◎ 变数的命名


如同档案的命名,变量的名字要取得有意义,在 C 中,名字可以取得很长,但是要用英文的,所以你可以把变量用中翻英来命名。


◎ 变量的命名规则
○ 变量名称的第一个字符必须是英文字母(A 到 Z 或 a 到 z)或是底线( _ )。
○ 第二个字符以后可以使用前述字符,再加上数字 0 到 9 。
○ 变量名称的大小写是不同的。
○ 变量名称的最前面 32 个字符有效。
○ 不可以使用「保留字」当变量的名称,保留字是给编译器使用,不可以当成变量名称。TC 有以下的保留字:
流程: if else for do while
switch default case break continue
goto return
型别: char int long float double
void register signed unsigned
short near far huge
typedef struct union enum
auto const static volatile extern
interrupt cdecl pascal asm
运算: sizeof
缓存器: _AX _AH _AL _cs _CS
_BX _BH _BL _ds _DS
_CX _CH _CL _es _ES
_DX _DH _DL _ss _SS
_SI _DI _BP _SP


◎ 变量的设定


使用变量时,应该先考虑这个数可能的数值范围,用以选定变量的型别,例如:用一个数来存班上的人数,一个合班的大班级可能超过百人,但最大不太可能超过千人,所以选一种变量型别可存 1000 以下的数值,在此可选整数。若是要用一个数来存你的存款,则整数的上限 32767 可能某些同学一个月的薪资就是它的数倍,所以要选长整数,它的上限是 2147483647 。在数学运算时,想要有小数的就要用浮点数(float)。


在 C 语言中,变量宣告的语法如下:
┌─────────────────────────────────────┐
│ 型别 变量名称1 [,变量名称2 [,...]] ; │
└─────────────────────────────────────┘
例如: int NumberOfStudent; /* 学生人数 */
long MoneyInBank, interest; /* 银行存款 */
float RateOfInterest; /* 利息利率 */
char EndOfString; /* 字符串结束 */
char OneStudentName[9]; /* 学生姓名 */


在宣告变量时,我们可以设定变量的初始值(initial value),语法如下:
┌────────────────────────────────────────────────────┐
│ 型别 变量名称1=初始值1 [,变量名称2=初始值2 [,...]] ; │
└────────────────────────────────────────────────────┘
例如: int NumberOfStudent=60; /* 学生人数 */
long MoneyInBank=1000000L; /* 银行存款 */
float RateOfInterest=5.0; /* 利息利率 in % */
char EndOfString='\0'; /* 字符串结束 */
char OneStudentName[9]="王大明"; /* 学生姓名 */


注意:在银行存款的设定数值 1000000 后加上一个 L ,表示这个常数数值1000000 是一个长整数。因为 C 语言内定的型别是整数,为了防止不可预期的状况发生,最好是自己把它设定成你想要的型别,不要假设 TC 会帮你做好好的,要假设 TC 很笨不会帮你做,这样在发展大程序要除错时,就可以把问题简化,不必再考虑是不是数据型别错误,只要把程序流程或算法搞定就可以了。在 TC 中,不加 L,结果还是正确的,但是在其它的环境下可能会不同。多加一个 L 并不会使程序变大或变慢,又能保障正确使用,何乐不为。


○ 复习一下字符与字符串:


char 字符只占一个 byte,以一组单引号 ' 引含字符数据,其表示法如下:


⊙ 单一字符:'A' 、'a' 、'0' 。


⊙ 八进制数值:'\101'、'\141'、'\60' 、'\0'


⊙ 十六进制数值:'\x41'、'\x61'、'\x30'、'\x0'


字符串则是由一个以上的字符所组成的,而且以 '\0' 这个字符做为结尾。


表示法: "123"、"ABC"、"abc"。以上的三个例子都是占 4 bytes。用 strlen() 可以取得字符串的长度(不含 '\0' 字符)。如: int StringLen=strlen("123");这样,StringLen 就等于3。


☆ 在使用 strlen() 时,必须加入 #include


◎ 设定叙述


前面已经说明了变量在宣告时给定初值的方法,接下来是在程序执行的过程中设定变量数值的方法。 即然是变量,表示它的数值可能在程序执行的过程中会改变多次,如果一个变量在整个程序执行中都不会改变,或许你该把它设成常数。


在设定变量时,可以用等号 = 来设定变量新值,语法如下:
┌──────────────────────────────────────────────────┐
│ 变量名称 = 表达式(表达式、函式传回数值或两者混合); │
└──────────────────────────────────────────────────┘


这个意思是等号左边「变量名称」的数值会等于等号右边「表达式」的运算结果。在 C 中,等号 = 是用来设定变量数值的,所以在等号的左边必须是变量,不可以是常数。在逻辑上的相等,在 C 中是用两个等号 == 来表示,有关逻辑的表示,在第五章中会作介绍。以下我们来看一些设定的例子,计算圆的面积:
PI = 3.1415926;
r = 4;
area = PI * r * r ;


以下是用变量的方式表示的范例:
┌────────────────────────────────────────────────────────────────┐
│var.c │
├────────────────────────────────────────────────────────────────┤
│#include
│void main(void) │
│{ │
│ int i,j; │
│ │
│ i = 10; │
│ j = 2; │
│ printf("%d + %d = %d\n", i , j , i+j ); │
│ printf("%d - %d = %d\n", i , j , i-j ); │
│ printf("%d * %d = %d\n", i , j , i*j ); │
│ printf("%d / %d = %d\n", i , j , i/j ); │
│ │
│ i = 20; │
│ j = 2; │
│ printf("%d + %d = %d\n", i , j , i+j ); │
│ printf("%d - %d = %d\n", i , j , i-j ); │
│ printf("%d * %d = %d\n", i , j , i*j ); │
│ printf("%d / %d = %d\n", i , j , i/j ); │
│} │
├────────────────────────────────────────────────────────────────┤
│10 + 2 = 12 │
│10 - 2 = 8 │
│10 * 2 = 20 │
│10 / 2 = 5 │
│20 + 2 = 22 │
│20 - 2 = 18 │
│20 * 2 = 40 │
│20 / 2 = 10 │
└────────────────────────────────────────────────────────────────┘


变量使用的有效范围:
整体变量(Global Variable): 整体程序内
区域变量(Local Variable):函式内
静态变量(Static Variable): 单一程序内



单片机教程,五系列(55讲)电子书全集下载

论坛精选:
■ 单片机c语言,10小时学会C 语言 (一)
第一章 C 语言简介与Turbo C 的使用
■ 单片机c语言,10小时学会C 语言 (二)
第二章 C 程序的结构
■ 单片机c语言,10小时学会C 语言 (三)
第三章 常数与变数
■ 单片机c语言,10小时学会C 语言 (四)
第四章 基本输出入函式
■ 单片机c语言,10小时学会C 语言 (五)
第五章 流程图与抉择指令
■ 单片机c语言,10小时学会C 语言 (六)
第六章 循环与自动重复
■ 单片机c语言,10小时学会C 语言 (七)
第七章 数组与指针
■ 单片机c语言,10小时学会C 语言 (八)
第八章 函数与呼叫
■ 单片机c语言,10小时学会C 语言 (九)
第九章 档案存取

1 楼  提交者:陈春 在 2008-3-18 11:31:08
我想看
2 楼  提交者:Guest 在 2008-3-18 11:59:53
我注册了为什么登路不了
3 楼  提交者:luxs 在 2008-3-18 13:45:42
我想看
4 楼  提交者:king 在 2008-3-18 15:51:36
ok
5 楼  提交者:浪人 在 2008-3-18 20:51:13
gan qu
6 楼  提交者:卫立 在 2008-3-18 22:47:09
卡们
7 楼  提交者:清风 在 2008-3-19 9:35:16
xiangkan 
8 楼  提交者:木木林 在 2008-3-19 10:16:12
SDFFASDFDAS
9 楼  提交者:han2002asd 在 2008-3-19 11:53:05
vb 
10 楼  提交者:郭总 在 2008-3-19 13:36:47
我想看可以吗


11 楼  提交者:anny2008 在 2008-3-19 16:05:46
12 楼  提交者:中山盈亮 在 2008-3-20 11:19:24
不错
13 楼  提交者:dataie 在 2008-3-20 14:13:20
kankan
14 楼  提交者:Guest 在 2008-3-20 16:54:59
][
][
15 楼  提交者:Guest 在 2008-3-20 18:24:48
What is chip select
16 楼  提交者:goldskin 在 2008-3-20 21:47:24
gan
17 楼  提交者:梦蝶秋 在 2008-3-21 11:41:13
我要看看
18 楼  提交者:shw0320 在 2008-3-21 17:23:39
19 楼  提交者:youminbuluo 在 2008-3-21 20:51:43
我看看
谢谢
20 楼  提交者:高臣 在 2008-3-22 13:15:30
学习
21 楼  提交者:liuyiqiangqq 在 2008-3-22 21:48:41
看不到
22 楼  提交者:liuyiqiangqq 在 2008-3-22 21:48:44
看不到
23 楼  提交者:liuyiqiangqq 在 2008-3-22 21:48:48
看不到
24 楼  提交者:liuyiqiangqq 在 2008-3-22 21:48:51
看不到
25 楼  提交者:liuyiqiangqq 在 2008-3-22 21:48:55
看不到
26 楼  提交者:liuyiqiangqq 在 2008-3-22 21:48:58
看不到
27 楼  提交者:liuyiqiangqq 在 2008-3-22 21:49:05
看不到
28 楼  提交者:有点意思 在 2008-3-22 23:42:02
good hao
29 楼  提交者:Guest 在 2008-3-23 0:22:00
30 楼  提交者:Guest 在 2008-3-23 12:43:04
看在眼里看在眼里看在眼里看在眼里
上一篇 下一篇
当前第〖1〗页 共有23页 转到第 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23