字串(C語言)

nomasp發表於2015-04-24

1.如果要宣告一個字串“NoMasp”,下面這行程式碼錯在哪裡?

char name[] = {'N', 'o', 'M', 'a', 's', 'p'};

如果想宣告的是字串,就需要在初始化時在結尾加上一個’\0’。或者可以直接用下面這張方式:

char name[] = "NoMasp";

2.以下這段程式碼會列印出什麼?

#include <stdio.h>

int main()
{
    char nomasp[]="I like C language.";
    char *ptr;

    ptr=nomasp;
    ++ptr;
    nomasp[6]='\0';
    puts(++ptr);

    return 0;
}

在ptr執行自增操作之後就是指向字母’I’後的空格,而後在索引為6的地方改為’\0’因此字串在這裡就被截斷了。所以最後列印出來的是”like”。

3.’A’一定比”A”更加節省空間嗎?

不一定。字元常量是儲存在int中的,也就是說’A’會佔用2個或4個位元組,雖然它’A’實際上只使用了一個位元組來儲存它的編碼。而”A”則使用了2個位元組,一個位元組用來儲存’A’,另一個位元組用來儲存’\0’。

char c = 'A';

c作為字元變數則佔用1個位元組。



為使本文得到斧正和提問,轉載請註明出處:
http://blog.csdn.net/nomasp

相關文章