1. 程式人生 > >C語言1

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位)

float型別的儲存方式

在計算機儲存中,首先要將數更改為二進位制的科學計數法表示,8.25,用二進位制的科學計數法表示為:1.0001*clip_image002[2]

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