三、數(shù)組與指針
數(shù)組與指針有密切的聯(lián)系。數(shù)組名本身就是該數(shù)組的指針, 反過來, 也可以把
指針看成一個數(shù)組, 數(shù)組名和指針實質上都是地址, 但是指針是變量, 可以作運算。
而數(shù)組名是常量, 不能進行運算。
例如:
main()
{
char s[30], *p; /*定義字符型數(shù)組和指針變量*/
p=s; /*指針p指向數(shù)組s的第一個元素s[0]的地址*/
.
.
.
*(p+8); /*指針p指向數(shù)組s的第9個元素s[8]的地址*/
.
.
.
}
由上例可以看出數(shù)組和指針有如下關系:
(p+i)=&(s[i])
*(p+i)=s[i]
因此, 利用上述表達式可以對數(shù)組和指針進行互換。兩者的區(qū)別僅在于: 數(shù)組
s是程序自動為它分配了所需的存儲空間; 而指針p則是利用動態(tài)分想函數(shù)為它分配
存儲空間或賦給它一個已分配的空間地址。
5. 運算符
Turbo C的運算符非常豐富, 主要分為三大類: 算術運算符, 關系運算符與
邏輯運算符, 按位運算符。除此之外, 還有一些用于完成特殊任務的運算符。下
面分別進行介紹。
5.1 算術運算符
Turbo C的算術運算符如下:
操作符 作用
+ 加, 一目取正
- 減, 一目取負
* 乘
/ 除
% 取模
-- 減1
++ 加1
一、一目和二目操作
一目操作是指對一個操作數(shù)進行操作。例如: -a是對a進行一目負操作。
二目操作(或多目操作)是指兩個操作數(shù)(或多個操作數(shù))進行操作。
在Turbo C中加、減、乘、除、取模的運算與其它高級語言相同。需要注意
的是除法和取模運算。
例如:
15/2 是15除以2商的整數(shù)部分7
15%2 是15除以2的余數(shù)部分1
對于取模運算符"%", 不能用于浮點數(shù)。
另外, 由于Turbo C中字符型數(shù)會自動地轉換成整型數(shù), 因此字符型數(shù)也可
以參加二目運算。
例如:
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’進行計算。
數(shù)組與指針有密切的聯(lián)系。數(shù)組名本身就是該數(shù)組的指針, 反過來, 也可以把
指針看成一個數(shù)組, 數(shù)組名和指針實質上都是地址, 但是指針是變量, 可以作運算。
而數(shù)組名是常量, 不能進行運算。
例如:
main()
{
char s[30], *p; /*定義字符型數(shù)組和指針變量*/
p=s; /*指針p指向數(shù)組s的第一個元素s[0]的地址*/
.
.
.
*(p+8); /*指針p指向數(shù)組s的第9個元素s[8]的地址*/
.
.
.
}
由上例可以看出數(shù)組和指針有如下關系:
(p+i)=&(s[i])
*(p+i)=s[i]
因此, 利用上述表達式可以對數(shù)組和指針進行互換。兩者的區(qū)別僅在于: 數(shù)組
s是程序自動為它分配了所需的存儲空間; 而指針p則是利用動態(tài)分想函數(shù)為它分配
存儲空間或賦給它一個已分配的空間地址。
5. 運算符
Turbo C的運算符非常豐富, 主要分為三大類: 算術運算符, 關系運算符與
邏輯運算符, 按位運算符。除此之外, 還有一些用于完成特殊任務的運算符。下
面分別進行介紹。
5.1 算術運算符
Turbo C的算術運算符如下:
操作符 作用
+ 加, 一目取正
- 減, 一目取負
* 乘
/ 除
% 取模
-- 減1
++ 加1
一、一目和二目操作
一目操作是指對一個操作數(shù)進行操作。例如: -a是對a進行一目負操作。
二目操作(或多目操作)是指兩個操作數(shù)(或多個操作數(shù))進行操作。
在Turbo C中加、減、乘、除、取模的運算與其它高級語言相同。需要注意
的是除法和取模運算。
例如:
15/2 是15除以2商的整數(shù)部分7
15%2 是15除以2的余數(shù)部分1
對于取模運算符"%", 不能用于浮點數(shù)。
另外, 由于Turbo C中字符型數(shù)會自動地轉換成整型數(shù), 因此字符型數(shù)也可
以參加二目運算。
例如:
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’進行計算。

