計算機語言分類
1> 機器語言機器指令)
2> 匯編語言
3> 高級語言Basic、C語言、Java、C++、C#/.net、OC、VB、PHP等)
C語系和C語言關系、強類型語言
C語系--由C語言演變而來的語言;比如C++、Java等。
C語言--主要用於底層開發,因此C語言也被稱為 中級語言。
強類型語言--就是變量在使用之前必須顯式聲明類型,聲明類型只需要聲明一次即可;使用時不能帶類型。
編寫C語言程序步驟在GNU/Linux下):
1> 用Vi/Vim編輯器編輯xx.c
2> 保存退出後,使用gcc xx.c進行編譯鏈接。
3> 使用./a.out運行如果在PATH環境變量中配置了. 就可直接使用a.out)
C程序結構
#include <stdio.h> //第一個C語言程序,並測試包含文件 int main() { #include "s.c" printf("hello c\n"); return 0; }
在xx.c中,一般由三部分組成
1> #開頭的叫做指令,常見的有 #include #define #if 等。
#include 作用是包含一個文件,一般會包含 /usr/include/下的頭文件(.h)。
2> int main(){}叫函數,main是主函數,程序的入口點;函數 由 返回類型、函數名、參數列表(多個參數用,隔開) 組成;{}叫函數體。
3> 函數{}中的內容叫 語句,語句 以 ; 結束。
C程序原理
1> 編寫源程序xx.c)
2> 預處理 所有指令。
3> 編譯程序,生成 .o/.obj文件。
4> 鏈接程序,把庫函數等外部資源和 .o文件進行鏈接,生成a.out文件。
5> 加載a.out文件從硬盤到內存;運行a.out程序。
其中2、3、4步驟都是依賴gcc編譯器,gcc可以直接當命令使用:
gcc常用選項
-c 只編譯compile/compiling)不鏈接
-o 目標文件名 修改目標object)文件名為指定名字默認為a.out)
-std=c89/c99 設置c89/c99標准默認是c89標准編譯鏈接)
-Wall 顯示所有的警告All Wall)信息警告不影響程序的編譯和運行)
-E 僅做預處理Pre-Processing)
-S 生成匯編(Assembly)文件
……
#include "xx" #include <xx> 的區別:
""是先在當前目錄.)找,再去系統目錄, <>只去系統目錄(/uer/include/)找。#include 前不能有非空白字符。
C語言的注釋
注釋是程序員之間溝通的方式,注釋不參與程序的編譯、鏈接和運行。
1> 單行注釋 //開始到本行結束
2> 多行注釋 /*開始 */結束 中間可以有任意多個字符和任意多行
注意:多行注釋不能嵌套。
C語言編碼規范:
1> 語句可以分開放在多行
2> 空格能更好的區分代碼
3> 縮進能更好的區分層次關系,一般縮進2-4個空格
4> 空行能更好的區分代碼模塊
5> 變量、函數的名字要有實際意義,采用駝峰命名法或下劃線命名法區分多個單詞。
變量
1> 變量
其實就是 內存的一個區域,變量名 對應 內存區域。變量在使用之前必須要 聲明類型,類型 就是變量的種類,可以確定變量占用內存區域的大小。
2> 類型
主要包括:char字符/int整型/float單精度浮點/double雙精度浮點/結構/聯合/枚舉/指針。
3> 變量的聲明
就是定義一個變量和變量的類型,格式如下:
類型 變量名 [=初始值];
int a; int a = 10; int a, b = 5, c;
變量的第一次賦值叫初始化;變量不進行初始化,其值 不確定。
#include <stdio.h> //簡單測試變量的使用 int main() { int a = 10,b; float f1 = 1.0f; a = 20; printf("a=%d\n",a);//%d代表整型變量 printf("f1=%f\n",f1);//%f float變量 printf("b=%d\n",b);//b的值不確定 return 0; }
標識符
給變量、函數、宏等實體 命名的叫標識符,准則:
1> 標識符必須字母、數字、下劃線組成,其中 數字不能是第一個
2> 區分大小寫
3> 長度無限制,但編譯器在編譯時會 截斷。
4> 不能和 C語言的關鍵字發生沖突。
關鍵字其實 就是 C語言自身已經 使用的特殊單詞,有特殊含義,不能被程序員做 標識符。常見的:int char float double return if else switch case default for while do break continue goto……
標准輸入函數和標准輸出函數
1.標准輸入:printf()
printf() 可以打印 0-n個變量(參數數量可變)
printf(格式字符串,變量或者表達式1,2,3,4,...)
格式字符串可以由 兩部分組成:普通字符串 和 轉換格式(%d)
轉換格式:
% - 0 m.n l/h 格式字符
% 轉換格式開始字符
- 左對齊 省略就是右對齊(了解)
0 空位補0 ,省略 空位不補(了解)
m.n m 域寬 (寬度) n 精度 浮點數 小數點後面的位數(了解)
l/h l 整數 long lf 代表 double
h 整數 short (少使用)
格式字符:
i/d 十進制的整數
c 字符
s 字符串
f 浮點(float,如果double需要加l)
g 浮點去掉後面的0)
p 地址
x 十六進制整數
o 八進制整數
u 無符號整數
2> scanf()
scanf可以從鍵盤輸入0-n個值,存到對應的變量中。
scanf(格式字符串,變量的內存地址列表) 0-n個變量都可以
int i; &i 取變量i的內存地址
scanf("%d",&i); //把鍵盤輸入的一個整數存在i
scanf 中的格式字符串與printf 基本一致。
scanf 從前向後 逐一 驗證輸入,到不符合格式就返回,並把前面符合格式的存入變量。
#include <stdio.h> //輸入輸出測試 int main() { int i; printf("請輸入一個整數\n"); scanf("%d",&i); printf("i=%d\n",i); return 0; }
3> 常用類型的表示:
整型變量: %d
字符型變量:%c
浮點double變量:%lf
字符串變量:%s
指針變量: %p
如果類型表示不正確的話,顯示結果 可能 錯誤。
如果在 格式字符串中有%的話,需要用 %%表示。
本文出自 “雪狼” 博客,請務必保留此出處http://wolfzhxp.blog.51cto.com/2409990/1284793