我想學ruby以後開發網站,但ruby是高級語言,隱藏了許多底層的東西,因此先熟悉c語言
首先c程序的文件名是以.c結尾的
c程序的格式:
第一行#include<stdio.h>
#是一個預處理標准,用來對文本進行預處理操作,表示該行代碼要最先進行處理,在編譯代碼之前運行
include是一個指令表示將<>中的文件讀入
stdio.h表示標准輸入輸出頭文件(頭文件就好像一本書的目錄,讀者通過目錄可以方便的查
閱到需要的內容,stdio.h聲明了標准輸入輸出函數,假如要用到標准輸入輸出函數時就要添加此頭
文件
第一個c語言程序:
#include<stdio.h>
int main()
{
printf("I like c language");
return 0;
}
第一行的作用是編譯器編譯之前將頭文件stdio.h中的所有內容讀到當前程序的第一行,由於stdio.h聲明了所有輸入輸出函數,因此下面就直接可以調用printf函數了
main() 代表一個函數,翻譯成中文就是主函數,在每一個c程序中首先編譯的都會是主函數,()是固定格式,{}也是固定格式,其中包含的部分叫做函數塊或者函數體
每個程序中都需要注明返回的類型,此處就是int,就是程序執行完成後要向操作系統返回一個整數
mian函數與其他函數有著本質的區別:一般函數都是由其他函數調用或者激活,比如printf函數就
是由mian函數激活,但main函數是在程序開始時自動執行
printf是print format的縮寫形式,I like c language是main函數傳遞給printf函數的信息,printf函數接受到此信息後將此信息輸出到屏幕上
return 0 表示mian函數向操作系統返回一個0值,一般函數執行完成後都會返回一個執行狀態結果,0表示正常,非0表示異常
c語言中的注釋:
// 單行注釋
/*....*/ 多行注釋
語句結束符 ; 只要行中包含了;就代表語句結束了 例如 ; 語句中的空格一般忽略不計
例如: x=a+b; 或者 x = a + b; 都是一樣的,建議使用第一種,意思就是將a+b的值賦值給x
#include<stdio.h>
int main()
{
{
printf("I like c language");
printf("I like c language");
return 0;
}
}
{}中包含的部分代表的就是一個塊,外面的{}包含的是函數塊,裡面{}的塊中包含了多條語句(兩條printf語句),精確地說是一條復合語句
表達式:x=c=a+b 意思就是將a+b的值賦值給c然後賦值給x
#include<stdio.h>
int main()
{
int a=1,b=2,c=3,x=0;
x=c=a+b;
printf("%d",x);
return 0;
}
%d 代表輸出的是一個整數,對應著後面的x,執行此程序得到3的結果
運算符:
#include<stdio.h>
int main()
{
printf("%d",5%2);
return 0;
}
5%2 代表取模,就是5除以2取它的余數,將這個值放入前面的“”中輸出
運算優先級:
printf ("%d",1+1*2+3);
上面的運算順序:1*2+1+3,
printf("%d",(1+1)*(2+3));
上面的運算順序:(1+1)的值乘以(2+3)的值,跟做小學運算一樣
= 在c語言中是賦值運算符
#include<stdio.h>
int main()
{
int x=0;
x+=1;
printf("%d",x);
return 0;
}
x+=1 表示將x的值加1,然後再將此值賦值給x, 相反的是x-=1
類似的還有:x*=2, x/=2,x%=2,x%=1+2 (先求1+2的值)
自加:x++ 將x的值加1
自減:x-- 將x的值減1
#include<stdio.h>
int main()
{
int x=2;
printf("%d",x--);
return 0;
}
上面的程序會先將x的值輸出至屏幕,然後再減1,如果要取得減1後的結果可使用下面的寫法
#include<stdio.h>
int main()
{
int x=2;
printf("%d\n",x--);
printf("%d\n",x);
return 0;
}
\n代表換行
上面的程序也可寫成這樣:
#include<stdio.h>
int main()
{
int x=2;
x--;
printf("%d",x);
return 0;
}
說了這麼多感覺有點不對,我怎麼執行上面這些程序文件的?我也是這麼想的
我是在linux系統中,使用vim編輯文件,例如: vim 1.c gcc程序編譯文件 編譯命令:gcc 1.c,會出現一個a.out的文件 執行此文件:./a.out
也可以使用gcc 1.c -o hello 自定義文件名