C語言1
第一個程式
#include<stdio.h> //前處理器 <>裡的都為標頭檔案
int main()
{ //{}為函式體
printf("Hello Word.\n"); //printf為<stdio.h>裡的庫函式
return 0; //代表程式正常結束
}
函式的構成是什麼?
函式名+函式的返回值
例:void Fun()
{
............;
}
如何把.cpp檔案變成.exe可執行程式?
.c/.cpp(原始碼)--預編譯-->.i--編譯-->.s(彙編指令)--彙編-->.obj(windows)/.o(linux)--連結-->.exe(可執行程式)
C 語言裡的六種基本資料型別short、int、long、char、float、double 。
• signed(有符號)
• unsigned(無符號)
• long(長型符)
• short(短型符)
1、整形型別:int ,short int,long int,long long,char,bool
2、浮點型別:float ,double
形式引數和實際引數:
形式引數(形參):定義函式名和函式體時需要用的引數,目的是用來接收呼叫該函式時傳遞的引數。
實際引數(實參):傳遞給被呼叫函式的值。
無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。 形參變數在未出現函式呼叫時,並不佔用記憶體,只在呼叫時才佔用。呼叫結束後,將釋放記憶體。
#include<stdio.h> void Swap(int a,int b)//交換函式 { int tmp = a; a = b; b = tmp; } int main () { int a = 10;//實參 int b = 20; printf("%d,%d\n",a,b); Swap(a,b); printf("%d,%d\n",a,b); return 0; }
執行程式發現a和b的值並沒有發生交換。
那麼原因如下C語言要求函式的實參要有確定的值,在函式呼叫時給形參分配相應的記憶體單元,同時將實參的“值”拷貝給形參,實現資料從實參到形參的按值傳遞。
char與unsigned char
#include<stdio.h>
int main()
{
char ch1 = 255;
char ch2 = -1;
char ch3 = 'a';
unsigned char ch4 = 255;
printf("%d\n",ch1);
printf("%d\n",ch2);
printf("%d\n",ch3);
printf("%c\n",ch3);
printf("%d\n",ch4);
}
輸出上述值為 -1 -1 97 a 255
char的取值範圍為-128~127 unsigned char的取值範圍為0~255
浮點數的儲存方式:
首先float在記憶體中佔四個位元組(32位)
在計算機儲存中,首先要將數更改為二進位制的科學計數法表示,8.25,用二進位制的科學計數法表示為:1.0001*
0表示正,指數位為:3+127=130 ,位數部分為0001,故8.25的儲存方式如下所示:
0 1000 0010 00010000000000000000000 (只能精確到小數點後六位)
指數位置的儲存由127為分界點,儲存時指數與127相加,儲存在指數位,float指數的範圍是-127~128。
大端與小端
大端:低地址放高資料,低位位元組排放在記憶體的高地址端。:手機,網路
小端:低地址放低資料,高位位元組排放在記憶體的高地址端。: PC Inter
舉一個例子吧,比如數字0x12 34 56 78在記憶體中的表示形式為:
(1)大端模式:
低地址 ————————> 高地址
0x12 | 0x34 | 0x56 | 0x78
(2)小端模式:
低地址 ————————-> 高地址
0x78 | 0x56 | 0x34 | 0x12