C語言那些事之指標操作

2021-08-21 14:54:04 字數 1243 閱讀 3507

乙個函式如果要返回乙個陣列,這個陣列最好不要定義成區域性變數,因為區域性變數傳過去後,該位址的內容有可能會發生變化,所以只能定義全域性變數陣列作為返回引數。

定義的指標變數,該變數只能被呼叫或傳入位址,不能進行內容操作,否則會奔潰,在stm32中會跑入錯誤中斷中。

貼乙個最近寫的字串操作的函式:

.c檔案

/**

* created by qiping on 2018/7/20 

* describe:

*        字串操作

* param:

*/#include "mystring.h"

char strbuffer[50];

/** * --------

* @since 2018-7-17

* @param1 str-->傳入字串指標

* @param2 startindex-->開始擷取字串段的開始位置,從0開始數

* @param3

* @addition

*        擷取的字串段內容包含startindex字串結束的所有字元

*        字串結束符=\0

*/char *substring(char *str, size_t startindex) 

return strbuffer;

}/**

* --------

* @since 2018-7-17

* @param1 str-->傳入字串指標

* @param2 startindex-->開始擷取字串段的開始位置,從0開始數

* @param3

* @addition

*        擷取的字串段內容包含startindex(含該字元)到endindex(含該字元)所有字元

*/char *substring2(char *str, size_t startindex, size_t endindex)

return strbuffer;

}

.h檔案

#include //包含size_t

#include //包含memset()

char *substring(char *str, size_t startindex);

char *substring2(char *str, size_t startindex, size_t endindex);

c語言 陣列與指標的那些事

正文開始 由於是提高篇 所以不對簡單的指標和陣列解釋 includeint main 定義乙個一維陣列 int p a 定義乙個指向int的指標 指向陣列a的首位址 printf p p n a,a 1 printf p p n p,p 1 printf d d n p 0 a 0 return 0...

指標的那些事

關於指標,大家都不陌生,無論學習c,c 亦或者其它程式語言,它都是不可或缺的。但是指標的定義 指標的用法 等等各種問題。我們都必須弄清楚,不能讓他阻礙我們前進的步伐 先說int p 這裡有必要說明一下 int 表示的定義乙個指向int 型別的指標變數 該變數記憶體裡是所指物件的位址,用 指標運算子 ...

C語言預處理那些事

c 檔案 i 檔案 s 檔案 o 檔案 可執行檔案 預處理 編譯 彙編 鏈結step1 預處理階段生成.i檔案 gcc o helloworld.i helloworld.c e 標頭檔案在預處理階段都被放置到了.i檔案的上方 include 去掉了 存在的是所有的.h檔案中的內容 巨集的替換是不考...