最近碼**時遇到乙個返回值的問題,一直報warning,後來查了下資料才知道原因,現在做下記錄。
typedef
struct
test_t;
test_t c[3]
;test_t*
fun(
void
)
一開始是這樣寫的,但是在return的地方報warning: return from incompatible pointer type [enabled by default]
,然後我又查了下關於***陣列首位址***的問題,可參考
果然是這裡的問題,函式是
test_t
型別的,而&c
是代表陣列首位址,嚴格來說是test_t
型別的,返回型別與函式型別不一致,因此會出現warning
。此處應該用return c
或者return &c[0]
。 菜鳥學習 C語言函式引數傳遞詳解 結構體與陣列
c語言中結構體作為函式引數,有兩種方式 傳值和傳址。1 傳值時結構體引數會被拷貝乙份,在函式體內修改結構體引數成員的值實際上是修改呼叫引數的乙個臨時拷貝的成員的值,這不會影響到呼叫引數。在這種情況下,涉及到結構體引數的拷貝,程式空間及時間效率都會受到影響。例子 typedef struct tags...
C語言資料型別,函式, 2021 2 10
前言 跟c語言沒多大關係,可以跳過前言 今日是除夕的前一天,也是第一次在外過年,不過還好的是身邊有很多親戚。今天看了一下計算機二級考試的試題,第乙個題目問的是c語言是由什麼構成,答案有 語句,函式,還有兩個沒太在意,忘了,雖然我知道答案應該是函式,但還是不確定,說明自己對基礎知識掌握的還不是很好,打...
C語言 結構體學習
為什麼需要結構體 為了表示一些複雜的事物,而普通的基本型別無法滿足實際要求 什麼叫結構體 把一些基本型別資料組合在一起形成的乙個新的復合資料型別 如何定義乙個結構體 3中方式 推薦使用第一種 第一種方式 這只是定義了乙個新的資料型別 並沒有定義變數 struct student 第二種方式 stru...