① 求c語言自學教材和視頻,本人0基礎!
Chapter2 Getting Started
§ 1. A SIMPLE EXAMPLE
This program prints outthe message 「This is a C program」
Example 1:
#include <stdio.h> //包含頭文件,標准輸入輸出頭文件 standard input output
//#include 「circle.h」
<>系統頭文件
「」用戶自定義頭文件
void main() 參數:程序的輸入數據
//返回值:函數的計算結果。void:無返回值
{
printf("This is a C program\n");//標准輸出語句
}//函數體
main函數(主函數)是c語言程序的入口。
\n 回車符
l Every C program contains a functioncalled main. This is the start point of the program.
l #include <stdio.h> allows the program to interactwith the screen, keyboardand filesystem of your computer. You will findit at the beginning of almost every C program.
l main() declares the start of the function, while the two curly brackets show the startand finish of the function. {}表示main函數的起止點。
l printf("This is a C program\n");//把雙引號內的文本,列印到屏幕上。
\n列印一個回車符。
prints the words on thescreen. The text to be printed is enclosed in doublequotes. The \n at the end of the texttells the program to print a newline as part ofthe output.
l C is case sensitive(大小寫敏感), that is, it recognises a lower case letter and it'supper case equivalent as being different.
例:inta 和 int A是兩個不同的變數。
編譯(目標文件 .obj)
->鏈接(把多個目標文件合成為一個可執行文件 .exe)
Compiling in Linux 編譯:把源代碼文件,
轉換為機器代碼文件(可執行文件)。
編譯器:完成編譯工作的程序。
gcc is the compiler from Gnu
$ gcchello.c
gcc:Unix/Linux平台上的編譯器,把源文件編譯成可執行文件。
把高級語言翻譯成二進制的機器語言。
hello.c 程序員編輯的源文件。
a.out 是由gcc編譯器生成的可執行文件,a.out是默認的文件名。
指定生成的可執行文件的名字 gcc hello.c –o hello
The compilation will proceed silently, andmake an executable file called a.out.
Running in Linux 運行可執行文件
./a.out
編輯-->編譯-->執行
Result:
This is a C program
§ 2. Comments
注釋:給代碼進行解釋說明,本身不是代碼。
編譯時,編譯器會忽略注釋的內容。
加強程序代碼的可讀性。說明書。
Example 2:
void main()
{
int Counter=0; /* Initalise Counter */
/* a comment
*/
/*
Another comment
*/
}
//注釋,不能折行
//
/*This
Is
A c
*/可以加多行注釋。
l A comment starts with a /* and ends with */.
Chapter3 Data Types(數據類型)
andVariables(變數)
§ 1. VARIABLE AND BASICDATA TYPES變數和基本數據類型
As a programmer, you will frequently wantyour program to "remember" a value. For example, if your program requests a value fromthe user, or if it calculates a value, you will want to remember it somewhereso you can use it later. The way your program remembers things is by using variables. For example:
int b;
創建了一個int型(整型)的變數b,來存儲數值。
l This line is to create a variable called b that is ableto hold one integer value.
l A variable has a name(變數名) (in this case, b) and a type(類型) (in this case, int, an integer).
l You can store a valuein b by saying something like:
b = 5;//用賦值語句,把一個值存儲到變數里。
變數的本質:內存里的存儲單元。
You can use the value in b by saying something like:
printf("%d", b);
In C, there are several standard types for variables:
c語言的基本(標准、內建)數據類型。
bool - true (真)or false(假), typically stored in one byte
//標准c語言沒有布爾型
int - integer (whole number) values 整型
float - floating point values (單精度)浮點型,帶小數點。1.1 2.2
char - single character values (such as 『m』 or』Z』) 『0』
字元型,存儲單一的字元,用單引號來包圍。每一個字元對應一個ASCII碼
「」
There are also several variants on these types such as double,unsigned int, long, unsigned long, bool.
Type(數據類型)
Size(在內存中所佔位元組數)
char, unsigned(無符號) char,
signed(有符號) char
1 byte
short , unsigned short 短整型
2 bytes
int, unsigned int 無符號整數(正整數)
4 bytes(32位機上)
long, unsigned long 長整型
4 或8 bytes(長度大於等於int)
float 單精度浮點數
4 bytes
double 雙精度浮點數
8 bytes或 8bytes(64位機)
sizeof(數據類型名),顯示每種類型的位元組數。
Variable Names 變數命名
Every variable has a name and a value. The name identifies the variable, the valuestores data.
l Every variable name in C must start with a letter, therest of the name can consist of letters, numbers and underscore characters.
每個變數必須以字母或下劃線作為開頭,由字母、下劃線、數字構成。
l C recognises upper and lower case characters as being different.
大小寫是兩個不同的字元。 X1和 x1是兩個變數
l Finally, you cannot use any of C's keywords like main,while, switch etc as variable names.
不能用c的關鍵字做變數名。 int main, MAIN,Main
Examples of legal variable names include
_x result outfile bestyet
_x1 x2 out_file best_yet _name
power0 impetus gamma hi_score
Variable Initialization變數初始化:給變數賦最初的值。
初始化的三種方式
• At compile(編譯)time in the declaration:
//聲明的同時進行初始化。(編譯時發生)
e.g. int x=5;
char code = 『B』;
int i = 0;
•At run time(運行時) by an assignment: //運行時用賦值表達式初始化
//int x; 聲明x
e.g.例如 x = 5;
• At run time by an input statement: //用用戶輸入數值進行初始化
e.g. scanf(「%d」,&x);//標准輸入語句
Constants 常量
To define a constant define a「variable」 (usually, U.C.) with keyword:
const
在變數前加上const關鍵字,成為常量。
常量的值,一經初始化就不能改變。
常量必須在聲明的同時初始化。
This is how it works:
const float PI =3.1415926;
This does NOT work:
const float PI = 3.0;
PI = 3.1415926; /* not allowed to change it */
Standard Input andOutput 標准輸入輸出
Output
Requires:
#include<stdio.h>
printf(formatstring, data list);
格式化描述串,待列印的變數列表。
int a = 10;
printf(「Thisis a C program」);
printf(「a = %d \n」,a);
Field specifiers are inside theformat string
FieldSpecifiers(格式轉換說明,%打頭,表明此處要聲明一個指定數據類型的值。)
\ 轉義字元,
\n 回車
\t 列印一個Tab鍵(一般為8個空格長度)
\r 換行
Type
Example
char
%c
short int
int
long int
%hd
%d
%ld
float
double
%f
%f 或 %lf
待列印的變數的個數,
要和描述符的個數匹配,
並且數據類型也要匹配。
Examples:
printf(「%d %c%f\n\t」, 23,』A』,4.23);
23 A
4.23
每個字元都對應一個整型的ASCII碼。
② C語言全套教學視頻
C語言程序設計
若資源有問題歡迎追問~
③ 誰有C語言的教學視頻呢,能推薦一下嗎
你也是自學的吧?我和你一樣,當初找了很多,像是什麼郝斌、曾怡、金文、康輝等等,這些我都看過,但是看了一點就就看不進去了,根本跟不上聽不懂,實在太啰嗦了,根本聽不出哪些是主要的,就和照著課本讀沒什麼區別。現在我看的是夏老師的,就是依據譚浩強教材講的,感覺還不錯,一聽就能聽懂,而且像是之前沒理解的概念,這個用比喻一下子我就理解了,比如我現在正看到的數組變數,就比喻成一排裝東西的盒子,還有很多這樣的比喻。
④ 誰有關於c語言的視頻教程,初學到高級的,最好是百度網盤資料,謝謝!
《C語言視頻教程》網路網盤高清資源免費在線觀看
鏈接:https://pan..com/s/1QAWDHhzlj0ytuxnPZiBYMw?pwd=p0l9
作品相關介紹:
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。
⑤ 急求C語言完整的網上教學視頻!!
http://www.enet.com.cn/eschool/video/c21shipin/
希望對你有幫助!另外,如果不是特殊情況,建議你不要下C語言視頻,就在線看吧!因為C語言視頻都是稀有資源,下起來會很慢的,我試過!
⑥ c語言教學視頻
我有打包好的 我發你哈 我現在就正在看 是夏老師的 依據的是譚浩強的教材 感覺比較好 比較適合像我這樣0基礎的 這個最吸引我的地方就是講的一聽就能聽懂 而且很多概念都有形象的比喻 例如把變數比如成盒子 把變數賦值比喻成往盒子里放東西等等很多這樣的比喻 感覺特別容易理解
⑦ 大家有沒有關於C語言,的視頻免費教學網站!自學!
優酷網上有c語言視頻教程全集,搜一下就出來了。建議LZ:1.結合教材,邊看邊做筆記。 2.課後用TC.exe 上機練習。最 常用的有Turbo C 2.0、Turbo C++ 3.0、Visual C++等 我用的教材是 C程序設計(第三版)、清華大學出版社的。類似的教材在書店裡有不少。 另外C++是面向對象的語言,C語言是面向過程的,C++學起來比C語言困難得多,所以不太適合程序設計的初學者。因為面向對象的基礎是面向過程,因此建議LZ先打好基礎,從C語言開始 。C程序學起來不簡單。希望LZ能成功。
⑧ 想自學C語言,大家幫幫忙
去"天天bt"上下載個csf視頻教學資源,
http://www.ttbt.cn/down.asp?id=17074&no=1
邊看教學邊學不錯.
另外,我覺得譚浩強編的"c語言程序設計"那本書不錯.
不過,如果你想成為好的程序員,建議你修好離散數學,編譯原理,線性代數等課程
C語言學習心得
前言
指針,一直被認為是C語言中的精華。只有掌握了指針,你才能說你學會了C語言。
相當初,我是把指針這一章足足看了三遍才算是「學了這一章」下面的文字是阿容
寫的,對我學習C語言的指針幫助很大。好東西不敢獨享,今天把它貼出來,希望
大家也會有所幫助。
第一章。指針的概念
指針是一個特殊的變數,它裡面存儲的數值被解釋成為內存里的一個地址。
要搞清一個指針需要搞清指針的四方面的內容:指針的類型,指針所指向的
類型,指針的值或者叫指針所指向的內存區,還有指針本身所佔據的內存區。讓
我們分別說明。
先聲明幾個指針放著做例子:
例一:
(1)int *ptr;
(2)char *ptr;
(3)int **ptr;
(4)int (*ptr)[3];
(5)int *(*ptr)[4];
如果看不懂後幾個例子的話,請參閱我前段時間貼出的文章<<如何理解c和c
++的復雜類型聲明>>。
1。 指針的類型。
從語法的角度看,你只要把指針聲明語句里的指針名字去掉,剩下的部分就
是這個指針的類型。這是指針本身所具有的類型。讓我們看看例一中各個指針的
類型:
(1)int *ptr; //指針的類型是int *
(2)char *ptr; //指針的類型是char *
(3)int **ptr; //指針的類型是 int **
(4)int (*ptr)[3]; //指針的類型是 int(*)[3]
(5)int *(*ptr)[4]; //指針的類型是 int *(*)[4]
怎麼樣?找出指針的類型的方法是不是很簡單?
2。指針所指向的類型。
當你通過指針來訪問指針所指向的內存區時,指針所指向的類型決定了編譯
器將把那片內存區里的內容當做什麼來看待。
從語法上看,你只須把指針聲明語句中的指針名字和名字左邊的指針聲明符
*去掉,剩下的就是指針所指向的類型。例如:
(1)int *ptr; //指針所指向的類型是int
(2)char *ptr; //指針所指向的的類型是char
(3)int **ptr; //指針所指向的的類型是 int *
(4)int (*ptr)[3]; //指針所指向的的類型是 int()[3]
(5)int *(*ptr)[4]; //指針所指向的的類型是 int *()[4]
在指針的算術運算中,指針所指向的類型有很大的作用。
指針的類型(即指針本身的類型)和指針所指向的類型是兩個概念。當你對C越
來越熟悉時,你會發現,把與指針攪和在一起的「類型」這個概念分成「指針的
類型」和「指針所指向的類型」兩個概念,是精通指針的關鍵點之一。我看了不
少書,發現有些寫得差的書中,就把指針的這兩個概念攪在一起了,所以看起書
來前後矛盾,越看越糊塗。
3。 指針的值,或者叫指針所指向的內存區或地址。
指針的值是指針本身存儲的數值,這個值將被編譯器當作一個地址,而不是
一個一般的數值。在32位程序里,所有類型的指針的值都是一個32位整數,因為
32位程序里內存地址全都是32位長。
指針所指向的內存區就是從指針的值所代表的那個內存地址開始,長度為si
zeof(指針所指向的類型)的一片內存區。以後,我們說一個指針的值是XX,就相
當於說該指針指向了以XX為首地址的一片內存區域;我們說一個指針指向了某塊
內存區域,就相當於說該指針的值是這塊內存區域的首地址。
指針所指向的內存區和指針所指向的類型是兩個完全不同的概念。在例一中
,指針所指向的類型已經有了,但由於指針還未初始化,所以它所指向的內存區
是不存在的,或者說是無意義的。
以後,每遇到一個指針,都應該問問:這個指針的類型是什麼?指針指向的
類型是什麼?該指針指向了哪裡?
4。 指針本身所佔據的內存區。
指針本身佔了多大的內存?你只要用函數sizeof(指針的類型)測一下就知道
了。在32位平台里,指針本身占據了4個位元組的長度。
指針本身占據的內存這個概念在判斷一個指針表達式是否是左值時很有
============================
7月11日
c語言心得一
2.數據輸出
c語言不提供輸入輸出語句,輸入輸出操作是由c的庫函數完成。但要包含頭文件stdio.h。
putchar( ) 向終端輸出一個字元
printf( )的格式字元:
① d格式符 用來輸出十進制整數
%d 按整型數據的實際長度輸出
%md 使輸出長度為m,如果數據長度小於m,則左補空格,如果大於m,則輸出實際長度
%ld 輸出長整型數據
② o格式符 以八進制形式輸出整數
③ x格式符 以十六進制形式輸出整數
④ u格式符 用來輸出unsigned型數據,以十進制形式輸出
⑤ c格式符 用來輸出一個字元
⑥ s格式符 輸出一個字元串
%s 輸出實際長度字元串
%ms 輸出的串佔m列,如果串長度小於m,左補空格,如果大於m,實際輸出
%-ms輸出的串佔m列,如果串長度小於m,右補空格,
%m.ns 輸出佔m列,但只取字元串中左端n個字元並靠右對齊
%-m.ns m、n含義同上,靠左對齊,如果n>m,則m自動取n值
⑦ f格式符 以小數形式輸出實數
%f 整數部分全部輸出,小數部分輸出6位
%m.nf 輸出數據共佔m列,其中有n位小數。如果數值長度小於m,左補空格
%-m.nf 同上,右補空格
⑧ e格式符 以指數形式輸出實數
%e 系統指定6位小數,5位指數(e+002 )
⑨ g格式符 輸出實數,根據數值大小,自動選f格式或e格式
3.數據輸入
getchar( ) 從終端輸入一個字元
scanf( 格式控制,地址列表) 標准C scanf中不使用%u,對於unsigned型數據,以%d或%o或%x輸入。%後的*,用來跳過它相應的數據。輸入數據時不能規定精度如scanf( "%7.2f", &a );是不合法的。
部分字元串處理函數
puts(字元數組) 將一個字元串輸出到終端。
gets(字元數組) 從終端輸入一個字元串到字元數組,並且得到一個函數值,為該字元數組的首地址
strcat(字元數組1,字元數組2) 連接兩個字元數組中的字元串,數組1必須足夠大。
Strcpy(字元數組1,字元串2) 將字元串2拷貝到字元數組1中。
Strcmp(字元串1,字元串2) 比較字元串,相等返回0,字元串1>字元串2,返回正數,小於返回負數。
Strlen(字元數組) 求字元串長度。
Strlwr( 字元串) 將字元串中的大寫字母轉換成小寫
Strupr( 字元串) 將字元串中的小寫字母轉換成大寫
以上是一些比較常用的字元串處理函數。
動態存儲變數與靜態存儲變數
從變數值存在的時間(生存期)角度來分,可分為靜態存儲變數和動態存儲變數。靜態存儲指在程序運行期間給變數分配固定的存儲空間,動態存儲指程序運行期間根據需要動態的給變數分配存儲空間。
C語言中,變數的存儲方法分為兩大類:靜態存儲類和動態存儲類,具體包括:自動的(auto),靜態的(static),寄存器的(register),外部的(extern)。
1) 局部變數的存儲方式
函數中的局部變數如不作專門說明,都之auto的,即動態存儲的,auto可以省略。局部變數也可以定義為static的,這時它在函數內值是不變的。靜態局部變數如不賦初值,編譯時系統自動賦值為0,動態局部變數如不賦初值,則它的值是個不確定的值。C規定,只有在定義全局變數和局部靜態變數時才能對數組賦初值。為提高執行效率,c允許將局部變數值放在寄存器中,這種變數叫register變數,要用register說明。但只有局部動態變數和形式參數可以作為register變數,其它不行。
2) 全局變數的存儲方式
全局變數在函數外部定義,編譯時分配在靜態存儲區,可以在程序中各個函數所引用。多個文件的情況如何引用全局變數呢?假如在一個文件定義全局變數,在別的文件引用,就要在此文件中用extern對全局變數說明,但如果全局變數定義時用static的話,此全局變數就只能在本文件中引用了,而不能被其它文件引用。
3) 存儲類別小結
從作用域角度分,有局部變數和全局變數
局部變數:自動變數,即動態局部變數(離開函數,值就消失)
靜態局部變數(離開函數,值仍保留)
寄存器變數(離開函數,值就消失)
(形參可定義為自動變數和寄存器變數)
全局變數:靜態全局變數(只限本文件引用)
全局變數(允許其它文件引用)
從存在的時間分,有靜態存儲和動態存儲
動態存儲:自動變數(本函數內有效)
寄存器變數(本函數內有效)
形參
靜態存儲:靜態局部變數(函數內有效)
靜態全局變數(本文件內有效)
全局變數(其它文件可引用)
從變數值存放的位置分
靜態存儲區:靜態局部變數
靜態全局變數
全局變數
動態存儲區:自動變數和形參
寄存器內:寄存器變數
7. 內部函數和外部函數
內部函數:只能被本文件中的其它函數調用,定義時前加static,內部函數又稱靜態函數。
外部函數:可以被其它文件調用,定義時前加extern,如果省略,則隱含為外部函數,在需要調用此函數的文件中,一般要用extern說明。
c編譯系統在對程序進行通常的編譯之前,先進行預處理。c提供的預處理功能主要有以下三種:1)宏定義 2)文件包含 3)條件編譯
1. 宏定義
不帶參數的宏定義
用一個指定的標識符來代表一個字元串,形式:#define 標識符 字元串
幾點說明:
1) 宏名一般用大寫
2) 宏定義不作語法檢查,只有在編譯被宏展開後的源程序時才會報錯
3) 宏定義不是c語句,不在行末加分號
4) 宏名有效范圍為定義到本源文件結束
5) 可以用#undef命令終止宏定義的作用域
6) 在宏定義時,可以引用已定義的宏名
帶參數的宏定義
定義形式:#define 宏名(參數表) 字元串
這和函數有些類似,但他們是不同的:
1) 函數調用時,先求實參表達式值,再代入形參,而宏只是簡單替換,並不求值
2) 函數調用是在程序運行時分配內存的,而宏展開時並不分配內存,也沒有返回值的概念
3) 對函數中的實參和形參都要定義類型,而且要求一致,宏名無類型,其參數也沒有類型。
4) 函數只有一個返回值,而宏可以得到幾個結果
5) 宏替換不佔運行時間,只佔編譯時間,而函數調用占運行時間
2. 文件包含處理
#include "文件1" 就是將文件1的全部內容復制插入到#include位置,作為一個源文件進行編譯。
在#include命令中,文件名可以用" "也可以用< >,假如現在file1.c中包含file2.h文件," "表示系統先在file1.c所在目錄中找file2.h,如果找不到,再按系統指定的標准方式檢索目錄,< >表示系統直接按指定的標准方式檢索目錄。所以用" "保險一點。
3. 條件編譯
條件編譯指不對整個程序都編譯,而是編譯滿足條件的那部分。條件編譯有以下幾種形式:
1)#ifdef 標識符
程序段1
#else
程序段2
#endif
它的作用:當標識符在前面已經被定義過(一般用#define),則對程序段1編譯,否則對程序段2編譯。
2)#ifndef 標識符
程序段1
#else
程序段2
#endif
它的作用和#ifdef相反,當標識符沒被定義過,對程序段1編譯,否則對程序段2編譯。
3)#if 表達式
程序段1
#else
程序段2
#endif
它的作用:當表達式值為真(非0)時,對程序段1編譯,否則對程序段2編譯。
http://spaces.msn.com/lxj5816778/Blog/cns!1pmxrkmy9J0DF4J21zFuHFzQ!134.entry
⑨ 請問誰有C語言基礎教學視頻呢或者譚浩強的視頻解析
譚浩強【004】
鏈接:https://pan..com/s/1D9ABrVGilTPcfh9iAamcCQ
若資源有問題歡迎追問~