注意:
1. 字符串数组不能用"="直接赋值, 即s="Good News!"是不合法的。所以应分清字符串数组和字符串指针的不同赋值方法。
2. 对于长字符串, Turbo C2.0允许使用下述方法:
例如:
main()
{
char s[100];
strcpy(s, "The writer would like to thank you for"
"your interest in his book. He hopes you"
"can get some helps from the book.");
.
.
.
}
(3)指针数组赋值
例如:
main()
{
char *f[2];
int *a[2];
f[0]="thank you"; /*给字符型数组指针变量赋值*/
f[1]="Good Morning";
*a[0]=1, *a[1]=-11; /*给整型数数组指针变量赋值*/
.
.
.
}
三、数组与指针
数组与指针有密切的联系。数组名本身就是该数组的指针, 反过来, 也可以把指针看成一个数组, 数组名和指针实质上都是地址, 但是指针是变量, 可以作运算。而数组名是常量, 不能进行运算。
例如:
main()
{
char s[30], *p; /*定义字符型数组和指针变量*/
p=s; /*指针p指向数组s的第一个元素s[0]的地址*/
.
.
.
*(p+8); /*指针p指向数组s的第9个元素s[8]的地址*/
.
.
.
}
由上例可以看出数组和指针有如下关系:
(p+i)=&(s[i])
*(p+i)=s[i]
因此, 利用上述表达式可以对数组和指针进行互换。两者的区别仅在于: 数组s是程序自动为它分配了所需的存储空间; 而指针p则是利用动态分想函数为它分配存储空间或赋给它一个已分配的空间地址。
5. 运算符
Turbo C的运算符非常丰富, 主要分为三大类: 算术运算符, 关系运算符与逻辑运算符, 按位运算符。除此之外, 还有一些用于完成特殊任务的运算符。下面分别进行介绍。
5.1 算术运算符
Turbo C的算术运算符如下:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作符 作用
────────────────────────────
+ 加, 一目取正
- 减, 一目取负
* 乘
/ 除
% 取模
-- 减1
++ 加1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一、一目和二目操作
一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。
二目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。
在Turbo C中加、减、乘、除、取模的运算与其它高级语言相同。需要注意的是除法和取模运算。
例如:
15/2 是15除以2商的整数部分7
15%2 是15除以2的余数部分1
对于取模运算符"%", 不能用于浮点数。
另外, 由于Turbo C中字符型数会自动地转换成整型数, 因此字符型数也可以参加二目运算。
例如:
main()
{
char m, n; /*定义字符型变量*/
m='c'; /*给m赋小写字母'c'*/
n=m+'A'-'a'; /*将c中的小写字母变成大写字母'B'后赋给n*/
...
}
上例中m='c'即m=98, 由于字母A和a的ASCII码值分别为65和97。这样可以将小写字母变成大写字母, 反之, 如果要将大写字母变成小写字母, 则用c+ 'a' -'A'进行计算。
二、增量运算
在Turbo C中有两个很有用的运算符, 在其它高级语言中通常没有。这两个运算符就是增1和减1运算符"++"和"--", 运算符"++"是操作数加1, 而"--" 则是操作数减1。
例如:
x=x+1 可写成x++, 或++x
x=x-1 可写成x--, 或--x
x++(x--)与++x(--x)在上例中没有什么区别, 但x=m++和x=++m却有很大差别。
x=m++ 表示将m的值赋给x后, m加1。
x=++m 表示m先加1后, 再将新值赋给x。