學(xué)習(xí)啦>學(xué)習(xí)英語>專業(yè)英語>計(jì)算機(jī)英語>

c中char的用法

時(shí)間: 長思709 分享

  c中char的用法的用法你知道嗎?下面小編就跟你們詳細(xì)介紹下c中char的用法的用法,希望對你們有用。

  c中char的用法的用法如下:

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

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

  本質(zhì)上來說,char *s定義了一個(gè)char型的指針,它只知道所指向的內(nèi)存單元,并不知道這個(gè)內(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ù)組操作。

  若定義:

  ?

  1

  2

  char s[] = "hello";

  char *p = s;

  也可以使用p[0] = 'a';因?yàn)檫@是p ==s,都是指向數(shù)組的指針。

  下面看另外一種定義:

  ?

  1

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

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

  ?

  1

  char s[n];

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

  例子

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  9

  #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中char的用法

c中char的用法的用法你知道嗎?下面小編就跟你們詳細(xì)介紹下c中char的用法的用法,希望對你們有用。 c中char的用法的用法如下: 本文實(shí)例分析了C語言中char* 和 char []的區(qū)別。分享給大家供大家參考之用。具體分析如下: 一般來說,很多
推薦度:
點(diǎn)擊下載文檔文檔為doc格式
537077