日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言基础语法总结(一)

發布時間:2024/9/30 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言基础语法总结(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

          • C變量
          • C常量
          • C存儲類
          • C運算符
          • C判斷
          • C循環

  • C變量

變量定義
變量定義就是告訴編譯器在何處創建變量的存儲,以及如何創建變量的存儲。

type variable_list;

在這里,type必須是一個有效的C數據類型,可以是char、w_char、int、float、double或任何用戶自定義的對象,variable_list可以由一個或多個標識符名稱組成。

變量聲明
變量聲明向編譯器保證變量以指定的類型和名稱存在,這樣編譯器在不需要知道變量完整細節的情況下也能繼續進一步的編譯。變量聲明只在編譯時有它的意義,在程序連接時編譯器需要實際的變量聲明。

extern int i; //聲明,不是定義 int i; //聲明,也是定義 建立存儲空間

extern 外部的,出現即指外部變量

實例

#include<stdio.h>// 函數外定義變量 x 和 y int x; int y; int addtwonum() {// 函數內部聲明變量x和y為外部變量extern int x;extern int y;// 給外部變量(全局變量)x和y賦值x = 1;y = 2;return x+y; }int main() {int result;//調用函數 addtwonumresule = addtwonum();printf("result 為:%d",result);return 0; }

如果需要在一個源文件中引用另外一個源文件中定義的變量,我們只需在引用的文件中將變量加上extern關鍵字的聲明即可。

addtwonum.c 文件代碼:

#include<stdio.h> /* 外部變量聲明*/ extern int x; extern int y; int addtwonum() {return x+y; }

test.c 文件代碼:

#include<stdio.h> /*定義兩個全局變量*/ int x = 1; int y = 2; int addtwonum(); int main(void): {int result;result = addtwonum();printf("result 為:%d",result);return 0; }

編譯執行上述代碼

gcc addtwonum.c test.c -o main ./main result 為:3
  • C常量

整數常量
整數常量可以是十進制、八進制或十六進制的常量。前綴指定基數:0x或0X表示十六進制,0表示八進制,不帶前綴則默認表示十進制。

整數常量也可以帶一個后綴,后綴是U和L的組合,U表示無符號整數(unsigned),L表示長整數 (long)。后綴可以是大寫也可以是小寫

浮點常量
浮點常量由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。

當使用小數形式表示時,必須包含整數部分、小數部分,或同時包含兩者。當使用指數形式表示時, 必須包含小數點、指數,或同時包含兩者。帶符號的指數是用e或E引入的。

字符常量

字符串常量

定義常量
#define預處理器

#define identifier value

實例:

#include<stdio.h>#define LENGTH 10 #define WIDTH 5 #define NEWLINE '\n'int main() {int area;area = LENGTH * WIDTH;printf("value of area : %d",area);printf("%c",Newline);return 0; }

const 關鍵字
可以使用const前綴聲明指定類型的變量,如下:

const type variable = value;

實例:

#include<stdio.h> int main() {const int LENGTH 10;const int WIDTH 5;const int NEWLINE '\n';int area;area = LENGTH * WIDTH;printf("value of area : %d",area);prtintf("%c",NEWLINE);return 0;
  • C存儲類

auto存儲類
auto存儲類是所有局部變量默認的存儲類。

{int mount;auto int month; }

上面的實例定義了兩個帶有相同存儲類的變量,auto只能用在函數內,即auto只能修飾局部變量

register存儲類
register存儲類用于定義存儲在寄存器中而不是RAM中的局部變量。這意味著變量的最大尺寸等于寄存器的大小(通常是一個詞),且不能對它應用一元的’&'運算符(因為它沒有內存位置)。

{register int miles; }

寄存器只用于需要快速訪問的變量,比如計數器。還應注意的是,定義’register’并不意味著變量將被存儲在寄存器中,它意味著變量可能存儲在寄存器中,這取決于硬件和實現的限制。

static存儲類
static 存儲類指示編碼器在程序的生命周期內保持局部變量的存在,而不需要在每次它進入和離開作用域時進行創建和銷毀。因此,使用static修飾局部變量可以在函數調用之間保持局部變量的值

static 修飾符也可以應用于全局變量。當static修飾全局變量時,會使變量的作用域限制在聲明它的文件內。

全局聲明的一個static變量或方法可以被任何函數或方法調用,只要這些方法出現在跟static變量或方法同一個文件中。

實例:

#include<stdio.h>/*函數聲明*/ void func1(void); static int count = 10; /*全局變量 -static 是默認的 */int main() {while (count--) {func1();}return 0; }void func1(void) { /* 'thingy'是'func1'的局部變量 -只初始化一次* 每次調用函數'func1''thingy'值不會被重置。*/static int thingy=5;thingy++;printf("thingy 為 %d, count 為 %d\n",thingy,count);}

實例中count作為全局變量可以在函數內使用,thingy使用static修飾后,不會在每次調用時重置。

extern存儲類
extern存儲類用于提供一個全局變量的引用,全局變量對所有的程序文件都是可見的。當使用extern時,對于無法初始化的變量,會把變量名指向一個之前定義過的存儲位置。

extern是用來在另一個文件中聲明一個全局變量或函數。extern修飾符通常用于當有兩個或多個文件共享相同的全局變量或函數的時候

第一個文件:main.c

#include <stdio.h>int count ; extern void write_extern();int main() {count = 5;write_extern(); }

第二個文件:support.c

#include<stdioo.h> extern int count ; void write_extern() {printf("count is %d\n",count); }

第二個文件中的extern關鍵字用于聲明已經在第一個文件main.c中定義的count。

  • C運算符

算數運算符
+(加)、-(減)、*(乘)、/(除)、%(取模取余)、++(自增,增加1)、–(自減)

a++為先賦值后運算 ++a為先運算后賦值

關系運算符

==、!=、<、>、>=、<=

邏輯運算符
&&:稱為邏輯與運算符。如果兩個操作數都非零,則條件為真
||:邏輯或運算符。如果兩個操作數中有任意一個非零,則條件為真
!:邏輯非運算符。用來逆轉操作數的邏輯狀態。如果條件為真則邏輯非運算符將使其為假

位運算符

假設變量A的值為60(00111100),變量B的值為13(00001101),則:

運算符描述實例
&按位與操作,按二進制位進行"與"運算。運算規則:0&0=0;0&1=0;1&0=0;1&1=1(A&B)將得到12,即00001100
l按位或運算符,按二進制位進行"或"運算。運算規則:`00=0;0
^異或運算符,按二進制位進行"異或"運算。運算規則:0^0=0;0 ^1=1;1 ^0=1;1 ^1=0(A^B)將得到49,即00110001
~取反運算符(~A)將得到-61,即為11000011,一個有符號二進制數的補碼形式
<<二進制左移運算符。將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)A<<2將得到240,即11110000
>>二進制右移運算符。將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄A>>2將得到15,即00001111

賦值運算符

=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=

雜項運算符

運算符描述實例
sizeof()返回變量的大小sizeof(a)將返回4,其中a是整數
&返回變量的地址&a;將給出變量的實際地址
*指向一個變量*a;將指向一個變量
?:條件表達式如果條件為真?則值位X:否則值為Y

C中的運算符優先級
后綴:() [] -> . ++ -- 從左到右
一元:+ - ! ~ ++ -- (type)* & sizeof 從右到左
乘除:* / % 從左到右
加減:+ - 從左到右
移位:<< >> 從左到右
關系:< <= > >= 從左到右
賦值:= += -= *= /= %= >>= <<= &= ^= |= 從右到左

  • C判斷

C語言把任何非零非空的值假定為true,把null假定為false

if語句 if…else語句 嵌套if語句
switch語句 嵌套switch語句

?:運算符(三元運算符)
輸入一個數字來判斷它是否為奇數或偶數實例

#include<stdio.h>int main() {int num;printf("請輸入一個數字:");scanf("%d",&num);(num%2==0)?printf("偶數"):printf("基數"); } return 0;
  • C循環

循環類型
while循環

while(condition) {statement(s); }

for循環

for ( init; condition; increment ) {statement(s); }

do…while循環

do {statement(s); } while (condition);

條件表達式出現在循環的尾部,所以循環中的statement(s)會在條件被測試之前至少執行一次

嵌套循環

循環控制語句
break語句
當break語句出現在一個循環內時,循環會立即終止,且程序流將繼續執行緊接著循環的下一條語句

它可用于終止switch語句中的一個case,如果時嵌套循環,break語句會停止執行最內層的循環,然后開始執行該塊之后的下一行代碼

continue 語句
告訴一個循環體立即停止本次循環迭代,重新開始下一次循環迭代

goto語句
將控制轉移到被標記的語句。但是不建議在程序中使用

*無限循環
如果條件用于不為假,則循環將變成無限循環。for循環在傳統上可用于實現無限循環。由于構成循環的三個表達式中任何一個都不是必需的,可以將某些條件表達式留空來構成一個無限循環

#include<stdio.h>int main() {for( ; ; ){printf("該循環會永遠執行下去!\n");}return 0; }

可以按 ctrl+c 鍵終止一個無限循環

總結

以上是生活随笔為你收集整理的C语言基础语法总结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。