1. 程式人生 > 其它 >c_第一章_簡介

c_第一章_簡介

技術標籤:c語言

1.程式

程式就是讓計算機識別執行的指令,讓計算機自動的執行各種操作,從最開始半自動,到自動,再到計算機可以自己學習,智慧的完成各種任務。這才是程式的發展。

2.語言

人於計算機之間的交流所使用的。

  • 機器語言:機器指令的集合。機器指令呢?–>就是計算機所能識別的二進位制程式碼。但是很難學、難寫、難記、難檢查、難修改缺點很大。
  • 符號語言(組合語言):為克服機器語言的缺點所創造,用字母代表對應的指令:ADD代表"加"。但是計算機並不能識別符號語言,需要使用匯程式設計序將符號語言轉換為機器語言,但是它仍然很難記,而且不同型號的計算機的機器語言和組合語言並不相通,所以它仍然有很大的缺點,這也就只是低階語言。
  • 高階語言:接近於人的使用習慣,功能性強,相容性高。但是也要通過編譯程式將高階語言(源程式)轉換成機器語言(目標程式)。一條語句包含多條指令。編寫簡單,普通計算機愛好者不必深究計算機內部結構和工作原理也可以編寫自己先想要的程式。

高階語言經歷了的三個發展階段:

  1. 非結構化語言:風格隨意,程式的流程可以隨意跳轉,維護和閱讀比較難。例如:早期的BASIC、FORTRAN和ALGOL等語言。
  2. 結構化語言:程式必須由基本結構(順序、選擇、迴圈)構成,不可隨意跳轉,由上到下執行。結構清晰,易於編寫、閱讀和維護。例如:c語言、QBASIC等。
  3. 面向物件的語言:以上兩種都是面向過程的語言處理小程式時得心應手,但是面對大型程式時,它的缺點就暴露出來了。程式面對的不是過程的細節,而是一個個物件。物件呢,就是資料以及對資料的操作組成的。例如:c++、c#、Visual Basic和Java等語言。

3.C語言的發展和特點

發展:由B語言的基礎上發展出來的。1983年美國國家標準協會(ANSI)指定了第一個C語言標準草案。1989年ANSI公佈了第一個完整的C語言標準。1990年ISO接受C89作為國際標準ISO/IEC 9899:1990。1999年ISO對C語言標準針對應用的需要增加了一些功能,零一零四年先後進行了兩次擴充。

特點:

  • 簡單、方便、靈活。只有37個關鍵字、九種控制語句,程式書寫形式自由。C是一個很小的核心語言,只包括極少與硬體有關的成分(類似輸入輸出,有關檔案操作的語句動態記憶體管理的語句等都是由編譯系統提供的庫函式實現)
  • 34種運算子,運算子豐富。包含範圍廣,種類豐富。
  • 資料型別豐富,有:整形、浮點型、超長整形(long long)和布林型別等,特點是指標資料型別,使用靈活多變,可以實現多種複雜的資料結構的運算。
  • 結構化的控制語句(if…else、while、do…while、switch和for語句)用函式作為程式的模組單位,便於實現程式的模組化。(C語言是完全模組化和結構化的語言)
  • 語法限制比較鬆散,程式設計自由。(並不是特定別的規格化,有些依靠程式設計師自己來確保程式的正確)
  • 允許直接訪問實體地址,能進行位(bit)操作,實現組合語言的大部分功能,對硬體直接進行操作。咋理解呢,就當是低階語言向高階語言的過度。擁有它們的優點。
  • 程式可移植性好,幾乎所有的計算機都可以使用C語言。
  • 生成目的碼質量高,程式執行效率高。
  • 目前C語言的主要用途是編寫嵌入式系統程式。

4.1C語言除編輯

  • 在螢幕上輸出資訊。
#include<stdio.h>                        //編譯預處理指令
int main()                               //定義函式型別為整形,即執行完程式後會得到一個整形值。
{
	printf("This is a C program\n");     // "\n"是換行符,即輸出完前面內容,顯示屏上的游標的位置就移動到下一行的開頭,游標的位置就是輸出的當前位置。
	return 0;
}

結果:
在這裡插入圖片描述
關於註釋

 - 第一種:"//" 這種註釋只能註釋掉它後面的當前行的內容。
 - 第二種:以 "/*" 開頭,以 "*/" 結尾的,註釋掉它們之間的內容,
 - 但是在字串中的註釋符號不當作註釋符來處理。
  • 兩個整數求和
#include <stdio.h>
int main()
{
	int a,b,sum;                 //宣告變數,定義a,b,sum為整型變數
	a=123;											
	b=132;
	sum=a+b;                     //賦值後相加,並且把結果存放在sum中
	printf("sum is %d\n",sum);   
	return 0;
}

結果:
在這裡插入圖片描述
在這裡:輸出時 “sum is” 這部分是輸出的是一些字串,解釋說明一些情況,後面的 “%d” 是指定的輸出格式,為十進位制整數 形式輸出,對應後面的變數sum。在執行printf函式時將sum以十進位制整數值輸出,來代替 “%d” 。

  • 比較大小
#include <stdio.h>
int max(int x,int y);          //宣告被呼叫的函式,這個宣告只需要在呼叫這個函式之前宣告就可以,或者可以直接把這函式的定義放在主函式之前就不用特別的宣告它了。
int main()
{
	int a,b,c;	
	scanf("%d,%d",&a,&b);      //輸入變數a和b,注意 " " 內有什麼在輸入的時候就要輸入什麼,例如這次的宣告引號內就有 , 則在輸入的兩個整形中就必須有 , 。&是地址符,&a意為變數a的地址。執行scanf函式將鍵盤輸入的整形放到a的地址,然後把整數賦值給它們。
	c=max(a,b);                //呼叫max函式,將max函式返回的值賦值給c。
	printf("max= %d\n",c);
	return 0;
}
int max(int x,int y)
{
	if(x>y) 
		return x;
	else return y;
}

結果:
在這裡插入圖片描述

4.2C語言的結構特點

  1. 一個程式由一個或多個源程式檔案組成:小的有一個,大的有好多個。
    源程式檔案包括三部分
- 預處理指令:如#include <stdio.h>等,在編譯系統在對源程式進行編譯之氣,需要先進行預處理。對
  於#include <stdio.h>指令就是將stdio.h標頭檔案內容取進來,代替#include <stdio.h>,預處理後得
  到的結果才是最後進行編譯的源程式,由編譯程式進行編譯,得到目標程式。
- 全域性宣告:在函式之外進行的宣告。因為c語言從上到下執行,所以在它宣告之後的函式都可以使用它。
- 函式定義:定義函式指定的功能。
  1. 函式是C語言的主要組成部份
    程式的工作是由各個函式完成的,函式是用來實現一個或幾個特定的功能。但是一個程式中有且只能有一
個主函式。當一個程式中有許多個函式,最好把它們放到不同的源程式檔案中,方便編譯和除錯。C語言可以調
用系統提供的函式庫或者自己編寫的函式。
  1. 一個函式包括什麼
 - 函式首部:也就是函式的第一行,函式宣告使用的那一行。int max(int x,int y)  函式型別 函式名(引數型別 引數名,
	引數型別 引數名,......)圓括號裡面可以有0到n個引數。
 - 函式體:就是函式首部後面花括號內的內容,包括:
		- 宣告部份:定義在本函式的變數,呼叫函式的宣告(沒必要在函式體裡面宣告,直接在函式體外聲明瞭就好了)
		- 執行部份:指定函式進行的操作。
 - 空函式也是合法的:void dump(){}
  1. 程式從main函式開始執行
  2. 每個宣告或語句之後必要有分號