C語言總結(一)

2021-07-22 08:05:20 字數 931 閱讀 1697

不可能通過執行呼叫函式來改變實參指標變數的值,但是可以改變實參指標變數所指變數的值。

例如swap函式需要傳指標而不是傳值。

c語言中,陣列名代表陣列中首元素的位址。

陣列變數本身不能被賦值;要把乙個陣列的所有元素交給另乙個陣列,必須採用遍歷。

引用乙個陣列元素,可以用兩種方法:

(1)下標法,如a形式;

(2)指標法,如*(a+i)或*(p+i)。其中a是陣列名,p是指向陣列元素的指標變數,其初值p=a。

實際上,在編譯時,對陣列元素a[i]就是按*(a+i)處理的,即按陣列元素首元素的位址加上相對位移量得到要找的元素的位址,然後找出該單元的內容。

可以看出,實際上是變址運算子。

今天下午用了一下午找出了乙個毛病:在dev c++5.1.1中使用scanf輸入多個值得時候,格式為scanf("%d" "%d" "%d",&a,&b,&c),或者scanf("%d %d %d",&a,&b,&c)而不是教材上寫的scanf("%d,%d,%d",&a,&b,&c)。如果中間使用逗號分隔會導致輸入的值a、b、c中只有a的值準確,b、c的值都不準確。

在使用scanf讀入字串的時候,為了保證字串不被溢位,可以使用在%後加個數字,比如scanf("%7s",word);的方式讀入。

sizeof是乙個靜態運算子,他的結果在編譯時刻就決定了;不要在sizeof的括號裡做運算,這些運算不會做。

不論指向什麼型別,所有的指標的大小都是一樣的,因為都是位址;

但是指向不同型別的指標是不能直接互相賦值的,這是為了避免用錯指標。

malloc語法:

標頭檔案           #include

int *a=(int*)malloc(n*sizeof(int));

(malloc初始的指標型別是void型別,malloc後面括號內的數為位元組數,而不是int數)

(未完待續。。。)

C 語言總結 一

c 語言是在c語言基礎之上,新增了物件導向 模板等現代程式語言的特性而發展起來的。兩者無論是從語法規則上,還是從運算子的數量和使用上,都非常相似。c語言和c 並不是對立的競爭關係 頭檔案型別 約定示例 說明c 舊式風格 以.h結尾 iostream.h c 程式可用 c舊式風格 以.h結尾 math...

C語言知識總結(一)

第一章 概述 1 c語言的基本知識 1.1 c語言的執行步驟 編輯 程式 的錄入,生成源程式 c 編譯 語法分析查錯,翻譯生成目標程式 obj 語法或邏輯錯誤,從第乙個開始改,變數定義,語句格式,表示式格式等 鏈結 與其他目標程式或庫鏈結裝配,生成可執行程式 exe 執行1.2 main函式的基本知...

C語言知識總結(一)

使用者模式 應用程式都是執行在使用者區域 核心模式 作業系統的核心,裝置驅動程式,這些都是在核心模式下執行的 大小端與進製關係 乙個位只能表示0,或者1兩種狀態,簡稱bit,乙個位是乙個bit 乙個位元組為8個二進位制,稱為8位,簡稱byte,8個位元是乙個位元組 乙個字為2個位元組,簡稱word。...