做h5那個網站好搜索引擎優(yōu)化與推廣技術
一個C語言程序必須包含以下代碼:
int main(void){return 0;
}
這是整個C語言程序的入口
輸出
輸入以下代碼并運行(注意分號):
#include <stdio.h>int main(void){printf("Hello World\n");return 0;
}
可以看到,控制臺上會顯示:
Hello World
這就證明你的程序寫對了。
為什么會顯示這個信息呢,因為我們在程序中寫了這個代碼:
printf("Hello World\n");
表示打印Hello World到顯示屏上。注意,\n表示換行符。
另外,如果要使用printf,需要在代碼的最頂上寫:
#include <stdio.h>
輸出整數(shù)
我們可以用如下代碼輸出整數(shù)1:
#include <stdio.h>int main(void){printf("%d\n", 1);return 0;
}
這段代碼將會成功輸出整數(shù)1.
數(shù)據類型
在C語言中,數(shù)據都有它的類型。數(shù)據會存儲在進程的地址空間中,而數(shù)據類型就規(guī)定了訪問這些數(shù)據的規(guī)則。
我們可以使用()運算符強行轉換數(shù)據類型:
#include <stdio.h>int main(void){printf("%d\n", (int)1.12);return 0;
}
輸出:
1
這是因為,我們規(guī)定了1.12這個數(shù)應遵循int(整數(shù))類型的訪問規(guī)則,因此它的輸出為1.
常用的數(shù)據類型有如下幾個:
int:整數(shù),占4個字節(jié)
short:短整數(shù),占2個字節(jié)
char:字符,占1個字節(jié)
變量
有些時候程序需要使用一些變量,變量的定義方法如下:
[數(shù)據類型] [變量名];
或者可以設定初始值:
[數(shù)據類型] [變量名] = [初始值];
定義完成后,我們可以使用=對變量進行賦值:
#include <stdio.h>int main(void){int var = 0;var = var + 1;var = var + 1;printf("%d\n", var);return 0;
}
其中,我們用+號獲得變量加上指定數(shù)的結果,并賦值給var,輸出:
2
因為var初始值為0,被加了兩次
指針
指針也是一種數(shù)據類型,表示地址。因此,在訪問指針類型的變量時,會將它當成一個地址來處理。這個地址可能是一個其他變量的地址。
我們可以通過&運算符獲得變量的地址:
#include <stdio.h>int main(void){int var = 0;printf("%p\n", &var);return 0;
}
輸出:
0000002f371ff7dc
一個指針變量需要被這么定義:
[訪問地址內容的數(shù)據類型] *[變量名];
也可以設置初始值:
[訪問地址內容的數(shù)據類型] *[變量名] = [初始值];
訪問一個指針變量存儲的地址時,需要使用*運算符:
#include <stdio.h>int main(void){int var = 0;int *p = &var;printf("%d\n", *p);return 0;
}
?表達式
C語言中,有許多表達式,如加減乘除,取地址,判斷真假等:
加減乘除
兩數(shù)相加用+運算符,相減用-運算符,相乘用*運算符,相除用/運算符:
#include <stdio.h>int main(void){printf("%d\n", 1+1);printf("%d\n", 1-1);printf("%d\n", 1*1);printf("%d\n", 1/1);return 0;
}
以上代碼分別輸出了1+1,1-1,1×1,1÷1的結果:
2
0
1
1
判斷真假
==為等于運算符,!=為不等于運算符,!為非運算符。如果結果真結果為非0,假結果為0:
#include <stdio.h>int main(void){printf("%d\n", 1==1);printf("%d\n", 1!=1);printf("%d\n", !(1==1));return 0;
}
以上代碼分別判斷1是否等于1、1是否不等于1、1是否等于1的否定,輸出:
1
0
0
?我們也可以用大于號和小于號表示大于小于的判斷:
#include <stdio.h>int main(void){printf("%d\n", 1>1);printf("%d\n", 1<1);printf("%d\n", 1>=1);printf("%d\n", 1<=1);return 0;
}
這段代碼將分別輸出1是否大于1,1是否小于1,1是否大于等于1,1是否小于等于1:
0
0
1
1
?
三目運算符
C語言中,三目運算符可以根據一個條件的真假,得出特定的結果,如:
#include <stdio.h>int main(void){printf("%d\n", (1==1)?10:20);return 0;
}
表示,如果1等于1,那么輸出10,否則輸出20
邏輯與和邏輯或
邏輯與的結果取決于其并列的兩個表達式的真假,只有都為真才是真。
邏輯或只需要有一個為真:
#include <stdio.h>int main(void){printf("%d\n", 1==1 && 1==2);printf("%d\n", 1==1 || 1==2);return 0;
}
這段代碼將分別輸出1等于1與1等于2的邏輯與和邏輯或,因此輸出如下:
0
1
運算符優(yōu)先級
運算符具有其優(yōu)先級,如先算乘除后算加減。我們可以使用小括號是一個運算的優(yōu)先級最高,如:
3 + 2 * 4
會先算2*4,最后在算3+8。而如果我們加上括號:
(3 + 2) * 4
就會先算3+2,后算5*4了?
變量運算
運算符也可以操作變量,如:
#include <stdio.h>int main(void){int var = 0;printf("%d\n", var == 0);printf("%d\n", (var + 1) == 0);return 0;
}
輸出:
1
0
條件判斷
條件判斷可以使用if關鍵字實現(xiàn):
if(表達式){表達式為真后執(zhí)行的代碼
}
如:
#include <stdio.h>int main(void){if(1==1){printf("1==1\n");}return 0;
}
輸出:
1==1
我們也可以對設置表達式為假后執(zhí)行的代碼:
if(表達式){表達式為真后執(zhí)行的代碼
}else{表達式為假后執(zhí)行的代碼
}
如:
#include <stdio.h>int main(void){if(1==2){printf("1==2\n");} else{printf("1!=2\n");}return 0;
}
?輸出:
1!=2
當然,我們也可以設置否則如果,也就是表達式為假后,再判斷另一表達式是否為真:
if(表達式1){表達式1為真后執(zhí)行的代碼
}else if(表達式2){表達式2為真后執(zhí)行的代碼
}else if...
}else{ (可選)表達式都為假后執(zhí)行的代碼
}
如:?
#include <stdio.h>int main(void){int age=18;if(age < 8){printf("1\n");} else if (age < 16){printf("2\n");} else if (age < 18){printf("3\n");} else{printf("4\n");}return 0;
}
輸出:
4
我們將age改成7,輸出:
1
循環(huán)
C語言中,循環(huán)分為while循環(huán)和for循環(huán):
while循環(huán)
while循環(huán)的寫法如下:
while (表達式){表達式為真后執(zhí)行的代碼
}
如果表達式為真,則會循環(huán),直到表達式為假。如果表達式為假,則會跳出循環(huán),如:
#include <stdio.h>int main(void){int count = 0;while (count < 10){printf("%d\n", count);count++;}return 0;
}
?count++表示將count變量自己增加1,因此,程序將會輸出:
0
1
2
3
4
5
6
7
8
9
for循環(huán)
for循環(huán)的寫法如下(注意分號):
for(表達式1;表達式2;表達式3){表達式2為真后執(zhí)行的代碼
}
for循環(huán)中,表達式1是進入循環(huán)前要執(zhí)行的語句(只執(zhí)行1次),表達式3是每次循環(huán)結束后要執(zhí)行的語句。同樣的,for循環(huán)也是循環(huán)直到表達式2為假。
前面的代碼可以改寫為:
#include <stdio.h>int main(void){int count;for (count = 0; count < 10; count++){printf("%d\n", count);}return 0;
}
輸出:
0
1
2
3
4
5
6
7
8
9