計算機三級網絡技術:重點理論知識(2)
4.各類運算符的用法
例如++、+=、\=、&&、>>等各類運算符的功能說明。
(1)在C語言中,基本運算符是:+、-、*、/、%,分別是加、減、乘、除、求余運算符。除求余運算符之外,運算
對象可以是整型,也可以是實型。
求余運算符的運算對象只能是整數。在%運算符左側的運算數為被除數,右側的運算符為除數,運算的結果是兩數相除后所得的余數。當運算數為負數時,所得結果的符號隨計算機有不同而不同。
說明:
①如果雙目運算符兩邊運算數的類型一致,則所得結果的類型與運算數的類型一致。
②如果雙目運算符兩邊運算數的類型不一致,系統將自動進行類型轉換,使運算符兩邊的類型達到一致,再進行運算。
③在C語言中,所有實型數的運算均以雙精度方式進行。若是單精度數,則在尾數部分添加0,使之轉化為雙精度數。
(2)強制類型轉換表達式
其語句形式如下:
(類型名)(表達式)
(類型名)稱為強制類型轉換運算符,利用強制類型轉換運算符可以將一個表達式的值轉換成指定的類型,這種轉換是
根據人為要求進行的。
(3)復合賦值表達式
在賦值運算符之前加上其他運算符可以構成復合賦值運算符。C語言規定可以使用l0種復合制賦值運算符,其中與算術運算有關的復合賦值運算符有:+=、-=、*=、/=、%=。復合賦值運算符的優先級與賦值運算符的優先級相同。
(4)自加運算符“++”和自減運算符“一”
①自加運算符“++”和自減運算符“一”,其運算結果是使運算對象的值增l或減l。
②運算符“++”和運算符“--”是單目運算符,運算對象可以是整型變量也可以是實型變量。但不能是常量或表達式,因為它不能給常量或表達式賦值。
③用自加運算符和自減運算符構成表達式時,既可以前綴形式出現,也可以后綴形式出現。以變量本身來說自增1或自減l都有相同的效果,但作為表達式來說卻有著不同的值。例如,若變量i為int類型,且已有值5。若表達式為++i,則先進行i增l運算,i的值為6,表達式的值也為6;若表達式為~i,則先進行減l運算,i的值等于4,表達式的值也為4;若表達式為i++,則表達式先取i的值為5,然后i的值加l,使其值變為6,若表達式為i--,表達式先取i的值為5,然后i進行減1運算,使i中的值為4。
④自加運算符“++”和自減運算符“一”的結合方向是“自右向左”
⑤不要在一個表達式中對同一個變量進行多次諸如i++或++i等運算。
5.各種變量的類型定義說明
(1)整型變量
整型變量分為基本型、短整型、長整型和無符號型四種。
基本型的整型變量用類型名關鍵字int進行定義,例如:
一個定義語句必須以一個“:”結束。在一個定義語句中也可以同時定義多個變量,變量之間用逗號隔開。例如:
(2)實型變量
C語言中實型變量分為單精度型和雙精度型兩種,分別用類型名float和double進行定義。單精度型變量定義的形式如下:
雙精度型變量定義的形式如下:
(3)字符變量
C語言中,字符變量用關鍵字char進行定義,在定義的同時可以賦初值。
字符變量在內存中占一個字節,可以存放ASCII字符集中的任何字符。當把字符放入字符變量中時,字符變量中的值就是該字符的ASCII代碼值,所以字符變量可以作為整型變量來處理,可以參與對整型變量所允許的任何運算。
(4)指針變量
指針變量的定義一般形式如下:
6.結構體的基本概念
一個結構體類型可以由若干個稱為成員(或域)的部分組成。結構體類型的一般形式為:
其中srtuct是關鍵字,是結構體的標志。“結構體標識名”和“結構成員名”都是用戶定義的標識符,其中“結構體標識名”是可選項,在說明中可以不出現。每個“結構成員名表”中都可以含有多個類型的成員名,它們之間用逗號分隔。結構體中的成員名可以和程序中的其他變量同名;不同結構體中的成員也可以同名。
注意:結構體說明同樣要以分號“;”結尾。
7.指針
(1)指針的基本概念
計算機的內存是以字節為單位的一片連續的存儲空間,每一個字節都有一個編號,這個編號便稱為內存地址。在C語言中,用來存放內存地址的變量稱為“指針變量”。
定義指針變量的一般形式如下:
類型名 *指針變量名1,*指針變量名2,……;
說明:指針變量名前的星號(*)是一個說明符,用來說明該變量是指針變量。這個星號不能省略。
(2)指針的執行的基本流程
如下圖1-22(a)所示,定義一個整型指針變量P,它本身的地址(2002)。若將整型變量a的內存地址(1012)存放到變量P中,這時要訪問變量a所代表的存儲單元,可以先找到變量P的地址(2002),從中取出a的地址(1012),然后再去訪問以1012為首地址的存儲單元,如圖l.22(b)所示。
這種通過變量P間接得到變量a的地址,然后再存取變量a的值的方式稱為“間接方式”。用來存放地址的變量稱為“指汁變量”。