欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C語言中char*和char[]用法區(qū)別分析

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

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

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

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

當(dāng)char *s = "hello";后,不能使用s[0]='a';語句進(jìn)行賦值。這是將提示內(nèi)存不能為"written"。

當(dāng)用char s[]="hello";后,完全可以使用s[0]='a';進(jìn)行賦值,這是常規(guī)的數(shù)組操作。

若定義:

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

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

下面看另外一種定義:

char *s = (char *)malloc(n(www.jb51.net));//其中n為要開辟空間的大小

這句話其實相當(dāng)于:

char s[n];

定義的也是一個指向數(shù)組的指針,便可進(jìn)行數(shù)組的下標(biāo)操作

例子

#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;
}

結(jié)果是:

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

相信本文所述對大家C語言程序設(shè)計的學(xué)習(xí)有一定的借鑒價值。

上一篇:C語言二叉樹的非遞歸遍歷實例分析

欄    目:C語言

下一篇:Cocos2d-x保存用戶游戲數(shù)據(jù)之XML文件是否存在問題判斷方法

本文標(biāo)題:C語言中char*和char[]用法區(qū)別分析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3375.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有