欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言的基本語(yǔ)法詳解

 更新時(shí)間:2021年09月18日 14:42:24   作者:小途  
本篇文章主要講解C語(yǔ)言 基本語(yǔ)法,這里提供簡(jiǎn)單的示例和代碼來(lái)詳細(xì)講解C語(yǔ)言的基本語(yǔ)法,開(kāi)始學(xué)習(xí)C語(yǔ)言的朋友可以看一下,希望能夠給你帶來(lái)幫助

1、標(biāo)識(shí)符與關(guān)鍵字

給變量所取的名字叫變量名,定義變量的名字需要遵循標(biāo)識(shí)符的命名規(guī)則。
標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)變量、符號(hào)常量、數(shù)組、函數(shù)、文件等名字的有效字符序列。

標(biāo)識(shí)符的命名規(guī)則:

1.只能由字母、數(shù)字和下劃線組成(例如:Score1,Stu_name)

2.第一個(gè)字符必須為字母或下劃線

3.區(qū)分大小寫(xiě)字母

4.C語(yǔ)言?xún)?nèi)部規(guī)定的標(biāo)識(shí)符(即關(guān)鍵字)不能作為用戶(hù)標(biāo)識(shí)

C語(yǔ)言的關(guān)鍵字:

C語(yǔ)言的關(guān)鍵字,是保留的一些特殊作用的詞語(yǔ),一共32個(gè)關(guān)鍵字

關(guān)鍵字 說(shuō)明
auto 聲明自動(dòng)變量
break 跳出當(dāng)前循環(huán)
case 開(kāi)關(guān)語(yǔ)句分支
char 聲明字符型變量或函數(shù)返回值類(lèi)型
const 定義常量,如果一個(gè)變量被 const 修飾,那么它的值就不能再被改變
continue 結(jié)束當(dāng)前循環(huán),開(kāi)始下一輪循環(huán)
default 開(kāi)關(guān)語(yǔ)句中的"其它"分支
do 循環(huán)語(yǔ)句的循環(huán)體
double 聲明雙精度浮點(diǎn)型變量或函數(shù)返回值類(lèi)型
enum 聲明枚舉類(lèi)型
extern 聲明變量或函數(shù)是在其它文件或本文件的其他位置定義
float 聲明浮點(diǎn)型變量或函數(shù)返回值類(lèi)型
for 一種循環(huán)語(yǔ)句
goto 無(wú)條件跳轉(zhuǎn)語(yǔ)句
if 條件語(yǔ)句
int 聲明整型變量或函數(shù)
long 聲明長(zhǎng)整型變量或函數(shù)返回值類(lèi)型
register 聲明寄存器變量
return 子程序返回語(yǔ)句(可以帶參數(shù),也可不帶參數(shù))
unsigned 聲明無(wú)符號(hào)類(lèi)型變量或函數(shù)
union 聲明共用體類(lèi)型
void 聲明函數(shù)無(wú)返回值或無(wú)參數(shù),聲明無(wú)類(lèi)型指針
volatile 說(shuō)明變量在程序執(zhí)行中可被隱含地改變
while 循環(huán)語(yǔ)句的循環(huán)條件

C99新建關(guān)鍵字:

_Bool 、_Complex_Imaginary 、inline 、restrict

C11新建關(guān)鍵字:

_Alignas 、_Alignof 、_Atomic _Generic 、_Noreturn_Static_assert 、_Thread_local

2、常量和符號(hào)常量

常量:在程序運(yùn)行過(guò)程中,其值不會(huì)發(fā)送變化的量。

變量:在程序運(yùn)行過(guò)程中,其值可以發(fā)送變化的量

(1)常量和常量符號(hào)

C語(yǔ)言提供的常量類(lèi)型有整型常量、實(shí)型常量、字符常量、字符串常量和符號(hào)常量。

用一個(gè)標(biāo)識(shí)符來(lái)代表一個(gè)常量,該標(biāo)識(shí)符叫做符號(hào)常量,其一般形式為:

#define 標(biāo)識(shí)符 常量

例如:

#define PI 3.1415926

關(guān)于typede和defin的用法與區(qū)別:

1.#defien是預(yù)處理指令,在編譯預(yù)處理時(shí)進(jìn)行簡(jiǎn)單替換,不作正確性檢查,不管含義是否正確照樣帶入,只要在編譯器已被展開(kāi)的源程序時(shí)才會(huì)發(fā)現(xiàn)可能的錯(cuò)誤并報(bào)錯(cuò)。

例如:#define PI 3.1415926

程序:area = PIrr替換3.1415926r

2.rtypedef是在編譯時(shí)處理的,通常是用于對(duì)已有數(shù)據(jù)類(lèi)型取別名,而#define只是簡(jiǎn)單地替換。

例如:typedef unsigned int uint;

這樣就為unsigned int型引入新助記符uint,以后使用uint直接代表unsigned int型。

例如:typedef PI 3.1515926;

編譯器會(huì)直接報(bào)錯(cuò),原因PI并非已存在類(lèi)型,其次“3.1515926”不符合命名規(guī)則。

(2)變量

1.變量在內(nèi)存中占用一定的儲(chǔ)存單元,在該儲(chǔ)存單元中存放變量值。

2.程序中用到的所有變量都必須有一個(gè)變量名

3.變量名和變量值是兩個(gè)不同的概念

請(qǐng)?zhí)砑訄D片描述

4.不同類(lèi)型的變量在內(nèi)存中占據(jù)儲(chǔ)存單元的數(shù)量及儲(chǔ)存的格式不相同,例如:char ch = ‘1';int i = 1;

請(qǐng)?zhí)砑訄D片描述

5.變量必須“先定義后使用”,這樣做的目的是:

1、便于編譯程序程序檢測(cè)對(duì)該變量的運(yùn)算是否合法。例如:整型變量可以進(jìn)行求模(余數(shù))運(yùn)算,實(shí)型變量不可以進(jìn)行求模運(yùn)算。

2、程序中變量名的正確使用

3、C語(yǔ)言數(shù)據(jù)類(lèi)型

請(qǐng)?zhí)砑訄D片描述

(1)整型常量

整型常量就是整數(shù),有3種表示形式

1.十進(jìn)制整常數(shù):就是通常整數(shù)的寫(xiě)法,數(shù)碼取值為0-9。例如:25、-623、0等

2.八進(jìn)制整數(shù):以0為前綴,數(shù)碼取值0-7,

例如:

020(十六進(jìn)制16)

016(十六進(jìn)制14)

0177777(十六進(jìn)制65535)

-010(十進(jìn)制數(shù)-8)

幾種不合法的八進(jìn)制數(shù):

256(無(wú)前綴0)

079(包含了非八進(jìn)制數(shù)碼9)

3.十六進(jìn)制整型常數(shù):以數(shù)字和字母0x開(kāi)頭,即0x作為前綴,數(shù)碼的取值為0-9和A-F(或字母a-f)

幾種合法的十六進(jìn)制數(shù):

0x2A(十進(jìn)制數(shù)42)

0x1AB0(十進(jìn)制數(shù)6832)

幾個(gè)不合法 的十六進(jìn)制數(shù):

5A(無(wú)前綴)、0x2H(包含了非十六進(jìn)制數(shù)碼H)

整型變量

整型變量分為:基本整型、長(zhǎng)整型、短整型、無(wú)符號(hào)型

請(qǐng)?zhí)砑訄D片描述

整型變量的定義及初始化:

定義變量及初始化的一般形式 為:

類(lèi)型說(shuō)明符 變量名1 = 值1

例如:

int a,b,c;	//定義a,b,c為整型變量
long x = 10;	//定義x為長(zhǎng)整型變量,并附初值10
unsigned int p=2,q=5,m;	//定義p,q,m為無(wú)符號(hào)整型變量。p賦初值為2,q賦初值為5

整型變量需要注意:
1、允許在一個(gè)類(lèi)型說(shuō)明符后,定義多個(gè)相同類(lèi)型變量,類(lèi)型說(shuō)明符與變量名之間至少用一個(gè)空格間隔,各變量名之間用逗號(hào)間隔
2、最后一個(gè)變量名后面用“;”號(hào)結(jié)尾
3、變量定義必須放在變量使用之前,一般放在函數(shù)體開(kāi)頭
4、沒(méi)有給變量賦初值,并不意味著該變量中沒(méi)有數(shù)值,只表面給變量中沒(méi)有確定的值,因此直接使用這種變量的話可能產(chǎn)生莫名其妙的結(jié)果,有可能導(dǎo)致運(yùn)算錯(cuò)誤

例程:

#include <stdio.h>
void main(void)
{
    int a = 3, b = 5, c, d;
    c = a+b;
    d = a-b;
    printf("a+b=%d,a-b=%d\n",c,d);
}

原碼、反碼和補(bǔ)碼

計(jì)算機(jī)中數(shù)分為有符號(hào)和無(wú)符號(hào)。他們是以二進(jìn)制形式表示的,有三種表示方法,即原碼和補(bǔ)碼。

三種表示方式由符號(hào)位和數(shù)值位兩部分構(gòu)成

符號(hào)位在最高位,用0表示“正”,1表示“負(fù)”。

取余位為數(shù)值位

請(qǐng)?zhí)砑訄D片描述

請(qǐng)?zhí)砑訄D片描述

原碼:按照二進(jìn)制的方法來(lái)表示數(shù)的絕對(duì)值,用這個(gè)方法得到的就是數(shù)的原碼。

反碼:正數(shù)的反碼與其原碼相同,負(fù)數(shù)的反碼為其原碼除符號(hào)位以外的各位 按為取反。

補(bǔ)碼:正數(shù)的補(bǔ)碼與其原碼相同,負(fù)數(shù)的補(bǔ)碼是將其原碼除符號(hào)位之外的各位求反之后,在末位再加1

正數(shù)的原碼、反碼。補(bǔ)碼相同;負(fù)數(shù)的原碼、反碼、補(bǔ)碼不同。數(shù)值在計(jì)算機(jī)中以補(bǔ)碼形式存放。

例如:求-127的補(bǔ)碼

請(qǐng)?zhí)砑訄D片描述

(2)實(shí)型數(shù)據(jù)

實(shí)型數(shù)據(jù)又稱(chēng)為實(shí)數(shù)或浮點(diǎn)數(shù),指是帶有小數(shù)部分的非整數(shù)數(shù)值。

實(shí)型常量

在C語(yǔ)言中,實(shí)數(shù)常量只能用十進(jìn)制數(shù)表示,有兩種表示方法:

1.小數(shù)形式:由數(shù)字0~9和小數(shù)點(diǎn)組成,當(dāng)小數(shù)部分為零時(shí),小數(shù)點(diǎn)不能省略。例如:0.0/24.4、-56.33等均為合法的實(shí)型常量

2.指數(shù)形式:由十進(jìn)制數(shù)、加階碼標(biāo)志小寫(xiě)字母“e”(或大寫(xiě)字母“E”)和階碼(必須是整數(shù))組成。

例如:2.3E5(相當(dāng)于2.3 x 10^5)

以下是不合法的實(shí)型常量:

123(無(wú)小數(shù)點(diǎn))

E4(階碼“E”之前無(wú)數(shù)字)

23.-E3(負(fù)號(hào)的位置不對(duì))

2.7E(無(wú)階碼)

實(shí)型變量

請(qǐng)?zhí)砑訄D片描述
請(qǐng)?zhí)砑訄D片描述

實(shí)型變量的定義以及初始化

例如:

float a,b,c;			//定義a,b,c為單精度實(shí)型變量
double m=3.5,n=5.6;		//定義m,n為雙精度實(shí)型變量,并分別賦值3.5和5.6

(3)字符型數(shù)據(jù)

字符常量是用一對(duì)單引號(hào)括起來(lái)的一個(gè)字符

如:‘b'、‘z'、‘='、‘?'、‘5'

字符常量特點(diǎn):

1.字符常量只能是單個(gè)字符,不能是多個(gè)字符

2.字符常量是以ASCII碼形式儲(chǔ)存,一個(gè)字符常量占用一個(gè)字節(jié)空間。

ASCII碼

ASCII碼表示American Standrd Code for Information Interchange。ASCII編碼能表示數(shù)據(jù)范圍是00000000~11111111共2^8即256個(gè)數(shù)據(jù)

標(biāo)準(zhǔn)的ASCII碼有128個(gè)字符,其中:

1.0-31為控制字符,例如,回車(chē)換行、文件結(jié)束標(biāo)志、字符串結(jié)束標(biāo)志

2.10個(gè)阿拉伯‘0'~‘9'的碼值是連續(xù)的

3.26個(gè)大寫(xiě)字母‘A'-‘Z'是連續(xù)的,26和大小寫(xiě)字母‘a(chǎn)'-‘z'是連續(xù)的

4.字符常量也可以參與各種運(yùn)算,如:‘B'-‘A'值為1(字符‘B'的ASCII碼值減去66字符‘A'的ASCII碼值65結(jié)果為1)

字符型變量

1.字符型變量在內(nèi)存中占用1個(gè)字節(jié),只能存放一個(gè)字符,并以該字符的ASCII碼的值的形式存放

2.在C語(yǔ)言中,一個(gè)字符型數(shù)據(jù)可以按照它的ASCII碼進(jìn)行數(shù)據(jù)運(yùn)算

字符型數(shù)據(jù)儲(chǔ)存空間和值范圍

類(lèi)型 字節(jié)數(shù) 取值范圍
char 1 -128~127
unsigned char 1 0~255

例程:給字符變量賦整數(shù)值

#include <stdio.h>
int main()
{
    char ch1=65,ch2=66;
    printf("%c,%c\n",ch1,ch2);
    printf("%d,%d\n",ch1,ch2);
}

轉(zhuǎn)義字符字符

轉(zhuǎn)義字符:是由一個(gè)反斜杠“"后跟規(guī)定,具有特定含義的字符

常用轉(zhuǎn)義字符如下表

請(qǐng)?zhí)砑訄D片描述

轉(zhuǎn)義字符使用如下:

#include <stdio.h>
int main()
{
    printf("\"china\"\n");
    printf("My \tCountry.\n");
    printf("I am hap\160\x79.\n");
}

字符串常量

字符串常量是簡(jiǎn)稱(chēng)字符串,是用一對(duì)雙撇號(hào)(西方雙引號(hào)英文)括起來(lái)的一串字符,包含字符的個(gè)數(shù)和字符長(zhǎng)度
例如:“Hello World”?!癮”,“C語(yǔ)言”都是字符串常量。

字符串常量和字符常量區(qū)別:

1.字符常量是右邊單引號(hào)括起來(lái)的字符,而字符串常量是由雙引號(hào)括起來(lái)的字符。盡管‘a(chǎn)'與“a”都包含一個(gè)字符,但在C程序中,它們都具有不同的含義

2.字符常量只能是一個(gè)字符,字符串常量可以是多個(gè)字符

3.可以把一個(gè)字符串常量賦值一個(gè)字符變量,但不能把一個(gè)字符常量賦值一個(gè)字符變量。

字符串變量

在C語(yǔ)言中沒(méi)有專(zhuān)門(mén)的字符串類(lèi)型,我們只能使用數(shù)組或者指針來(lái)間接地存儲(chǔ)字符串。

char str1[] = "Hello World!"
char *str2 = "你好世界!"

str1 和 str2 是字符串的名字,后邊的[]和前邊的*是固定的寫(xiě)法。初學(xué)者暫時(shí)可以認(rèn)為這兩種存儲(chǔ)方式是等價(jià)的,它們都可以通過(guò)專(zhuān)用的 puts 函數(shù)和通用的 printf 函數(shù)輸出。

#include <stdio.h>
int main()
{
    char web_url[] = "hHello World!";
    char *web_name = "你好世界";
    puts(web_url);
    puts(web_name);
    printf("%s\n%s\n", web_url, web_name);
    return 0;
}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

    C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

    這篇文章主要給大家介紹了關(guān)于C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • C語(yǔ)言打印楊輝三角形的示例代碼

    C語(yǔ)言打印楊輝三角形的示例代碼

    楊輝三角形,又稱(chēng)帕斯卡三角形、賈憲三角形、海亞姆三角形,它的排列形如三角形。本文將為大家介紹通過(guò)C語(yǔ)言實(shí)現(xiàn)打印楊輝三角形的示例代碼,需要的可以參考一下
    2022-02-02
  • C語(yǔ)言聯(lián)合體Union特點(diǎn)及運(yùn)用全面講解教程

    C語(yǔ)言聯(lián)合體Union特點(diǎn)及運(yùn)用全面講解教程

    這篇文章主要為大家介紹了C語(yǔ)言聯(lián)合體Union特點(diǎn)及運(yùn)用的全面講解教程有需要深度朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-10-10
  • C語(yǔ)言中判斷素?cái)?shù)(求素?cái)?shù))的思路與方法實(shí)例

    C語(yǔ)言中判斷素?cái)?shù)(求素?cái)?shù))的思路與方法實(shí)例

    計(jì)算機(jī)或者相關(guān)專(zhuān)業(yè)基本上大一新生開(kāi)始學(xué)編程都會(huì)接觸的一個(gè)問(wèn)題就是判斷質(zhì)數(shù),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中判斷素?cái)?shù)(求素?cái)?shù))的思路與方法,需要的朋友可以參考下
    2022-03-03
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易訂餐系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易訂餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • VC編程控件類(lèi)HTControl之CHTGDIManager GDI資源管理類(lèi)用法解析

    VC編程控件類(lèi)HTControl之CHTGDIManager GDI資源管理類(lèi)用法解析

    這篇文章主要介紹了VC編程控件類(lèi)HTControl之CHTGDIManager GDI資源管理類(lèi)用法解析,需要的朋友可以參考下
    2014-08-08
  • 將?C++?類(lèi)型屬性暴露給?QML

    將?C++?類(lèi)型屬性暴露給?QML

    這篇文章主要介紹了將?C++?類(lèi)型屬性暴露給?QML,?QML?是一種基于?JavaScript?的聲明式語(yǔ)言。在?Qt5中,QML有了長(zhǎng)足進(jìn)步,并且同?C++?并列成為?Qt?的首選編程語(yǔ)言下面一起進(jìn)入文章學(xué)習(xí)?QML的條件下也看看如何將將?C++?類(lèi)型屬性暴露給?QML,需要的朋友可以參考一下
    2021-12-12
  • C++中函數(shù)指針詳解及代碼分享

    C++中函數(shù)指針詳解及代碼分享

    這篇文章主要介紹了C++中函數(shù)指針詳解及代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • C語(yǔ)言-I/O流設(shè)計(jì)實(shí)驗(yàn)

    C語(yǔ)言-I/O流設(shè)計(jì)實(shí)驗(yàn)

    編程語(yǔ)言的I/O類(lèi)庫(kù)中常常使用流這個(gè)抽象的概念,它代表任何有能力產(chǎn)生數(shù)據(jù)的數(shù)據(jù)源對(duì)象或時(shí)有能力接收數(shù)據(jù)的接收端對(duì)象,本文為大家介紹C語(yǔ)言中I/O系統(tǒng)基礎(chǔ)知識(shí)
    2021-07-07
  • Opencv分水嶺算法學(xué)習(xí)

    Opencv分水嶺算法學(xué)習(xí)

    這篇文章主要為大家詳細(xì)介紹了Opencv分水嶺算法的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評(píng)論