C教程-----數(shù)據(jù)類型、變量和運(yùn)算符(4)

字號(hào):

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