国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言中char*和char[]用法區別分析

2020-01-26 15:19:16
字體:
來源:轉載
供稿:網友

本文實例分析了C語言中char* 和 char []的區別。分享給大家供大家參考之用。具體分析如下:

一般來說,很多人會覺得這兩個定義效果一樣,其實差別很大。以下是個人的一些看法,有不正確的地方望指正。

本質上來說,char *s定義了一個char型的指針,它只知道所指向的內存單元,并不知道這個內存單元有多大,所以:

當char *s = "hello";后,不能使用s[0]='a';語句進行賦值。這是將提示內存不能為"written"。

當用char s[]="hello";后,完全可以使用s[0]='a';進行賦值,這是常規的數組操作。

若定義:

char s[] = "hello";char *p = s;

也可以使用p[0] = 'a';因為這是p ==s,都是指向數組的指針。

下面看另外一種定義:

char *s = (char *)malloc(n(m.survivalescaperooms.com));//其中n為要開辟空間的大小

這句話其實相當于:

char s[n];

定義的也是一個指向數組的指針,便可進行數組的下標操作

例子

#include <stdio.h>int main(int argc, char* argv[]) {char* buf1 = "this is a test";char buf2[] = "this is a test";printf("size of buf1: %d/n", sizeof(buf1));printf("size of buf2: %d/n", sizeof(buf2));return 0;}

結果是:

$ > ./main
size of buf1: 4
size of buf2: 15

相信本文所述對大家C語言程序設計的學習有一定的借鑒價值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 旬阳县| 西城区| 临澧县| 涟源市| 颍上县| 平凉市| 衡东县| 江川县| 兴化市| 济宁市| 尤溪县| 岑溪市| 三原县| 沙田区| 兰州市| 秭归县| 日喀则市| 台北市| 仙游县| 彩票| 福海县| 汕尾市| 且末县| 新郑市| 平昌县| 澜沧| 铜鼓县| 东乡县| 金坛市| 雷州市| 双流县| 措勤县| 六枝特区| 仪陇县| 调兵山市| 岱山县| 隆安县| 腾冲县| 台南县| 延川县| 丹棱县|