char * fgets ( char * str, int num, FILE * stream );
其中num表示其能讀入的字符串的大長度,F(xiàn)ILE *為文件指針。
fgets函數(shù)較gets函數(shù)而言更為安全,更推薦使用。
具體示例:
char food[5];
fgets(food, sizeof(food), stdin);
首先,它接收指向緩沖區(qū)的指針;
其次,它接收字符串(包括’\0’)的大長度。
stdin為標(biāo)準(zhǔn)輸入,表示數(shù)據(jù)來自鍵盤。
在上面這段代碼中,food是數(shù)組變量,所以sizeof返回了數(shù)組的大??;如果food是指針變量,sizeof僅僅會返回指針的大小。
因此,如果要向fgets()函數(shù)中傳遞數(shù)組變量,就用sizeof;如果只是傳指針,就應(yīng)該輸入你想要的長度。
如:
fgets(food, 5, stdin);
如果food是一個指針,就不能用sizeof,而應(yīng)該顯式給出長度。
2、字符串常量(字符串字面值)通常儲存在只讀存儲器中
eg.char *str = "hello"; char str[] = "hello";
前者不能修改,只讀;后者可讀可寫。
注意:str[] 和 *str
當(dāng)且僅當(dāng)作函數(shù)形參的時候地位完全相等。
對于結(jié)構(gòu)體而言,結(jié)構(gòu)名是struct關(guān)鍵字后面的那個單詞。類型名是指typedef后結(jié)構(gòu)體的名稱。
eg.
typedef struct M_book{int a;
int b;
}Book;
其中的M_book就是結(jié)構(gòu)名,Book就是類型名。如果只寫類型名而不寫結(jié)構(gòu)名,一般也沒問題。(個人更推薦不加結(jié)構(gòu)名的寫法)
也可以寫成下面這種格式:
typedef struct Hoge{int a;
int b;
}Hoge;
4、strcmp函數(shù)
4.1 函數(shù)原型:int strcmp ( const char * str1, const char * str2 );
即傳入的參數(shù)必須為char * 類型的,如果a, b的類型為char **,則代碼應(yīng)寫成strcmp(*a, *b);
(因為函數(shù)中局部變量的地址在函數(shù)結(jié)束后無效)
6.其他: 6.1 多維數(shù)組問題c語言中準(zhǔn)確的說不存在多維數(shù)組,而應(yīng)該稱為“數(shù)組的數(shù)組”。
實例:(非常重要!)
對于以下聲明,int hoge[3][5];
①hoge的類型為“int 的數(shù)組(元素個數(shù)5)的數(shù)組(元素個數(shù)3)”
②盡管如此,在表達式中數(shù)組可以被解讀成指針。因此,hoge 的類型為“指向int 的數(shù)組(元素個數(shù)5)的指針”
③hoge[i]是*(hoge + i)的語法糖。
1)給指針加上i,就意味著指針前移它指向的類型 * i的距離。
hoge 指向的類型為“int的數(shù)組(元素個數(shù)5)”,因此,hoge + i讓指針前移了 sizeof (int [5]) * i 的距離。
2)通過*(hoge + i)中的* ,去掉一個指針,(hoge + i)的類型就是“指向int 的數(shù)組(元素個數(shù)5)”
3)盡管如此,由于在表達式中,數(shù)組可以解讀為指針,所以*(hoge + i)的最終類型為“指向int 的指針”。
6.2 突然使用沒有指向內(nèi)存區(qū)域的指針(野指針)int *p;
p[3] = ....
6.3 函數(shù)傳參1)返回值類型的指針類型為傳入形參的類型。
eg.返回int 型,傳入為int *型。
2)將類型T 的數(shù)組作為參數(shù)進行傳遞時可以傳遞“指向T的指針”。
因此,如果想要將“數(shù)組a的數(shù)組b”作為參數(shù)傳遞,可以考慮傳遞“指向數(shù)組a的指針”。
此外,c標(biāo)準(zhǔn)只承認(rèn)“指向數(shù)組最后元素的下一個元素”是合法的,如果指針指向“最后元素的下下個元素”,即為非法。
7.行指針具體可參考:
關(guān)于C語言行指針的詳細(xì)解析
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁題目:補充:指針、結(jié)構(gòu)體和字符串中的注意點-創(chuàng)新互聯(lián)
本文地址:http://muchs.cn/article12/dejedc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、靜態(tài)網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)