乙個函式如果要返回乙個陣列,這個陣列最好不要定義成區域性變數,因為區域性變數傳過去後,該位址的內容有可能會發生變化,所以只能定義全域性變數陣列作為返回引數。
定義的指標變數,該變數只能被呼叫或傳入位址,不能進行內容操作,否則會奔潰,在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檔案中的內容 巨集的替換是不考...