char字[100]在C中意味着什么

时间:2017-05-30 15:43:34

标签: c string char

char word[100];在C中的意思。我假设它意味着它将字符的限制设置为100.我仍然不确定。

3 个答案:

答案 0 :(得分:3)

char word[100]创建一个char的数组,类似于int word[100]创建int数组的方式。 此字符数组允许您存储索引0到99之间的100个字符。

答案 1 :(得分:2)

word[100]是一个字符串(char数据类型的数组)。但C中的字符串有点  与普通阵列不同。字符串末尾将包含空字符(' \ 0')。因此word[100]可以包含来自输​​入的99个字符,这些字符将从0开始索引 - 98和空字符将放在索引号99中。

答案 2 :(得分:1)

此声明将word创建为char的100个元素数组:

      +---+
word: |   | word[0]
      +---+
      |   | word[1]
      +---+
      |   | word[2]
      +---+
       ...  
      +---+
      |   | word[99]
      +---+

每个word[i]存储一个char值。在C中,数组从0开始索引,因此对于N元素数组,有效索引的范围是0到N-1。您可以在word(元素0到98)中存储长度最多 99个字符的字符串,为字符串终止符留出1个可用元素。当然,您也可以存储较短的字符串:

  0   1   2   3   4   5   6   7       99
+---+---+---+---+---+---+---+---+   +---+
|'H'|'e'|'l'|'l'|'o'| 0 | ? | ? |...| ? |
+---+---+---+---+---+---+---+---+   +---+

您还可以在一个数组中存储多个字符串:

  0   1   2   3   4   5   6   7   8   9   10  11      99
+---+---+---+---+---+---+---+---+---+---+---+---+   +---+
|'H'|'e'|'l'|'l'|'o'| 0 |'W'|'o'|'r'|'l'|'d'| 0 |...| ? | 
+---+---+---+---+---+---+---+---+---+---+---+---+   +---+

或者,您可以存储100个组成字符串 1 的字符。

C声明语法有点复杂 - 对象的类型由声明说明符(类型说明符,类型限定符,对齐说明符等)和声明符<的组合决定。 / em>的

在声明中

char word[100];

char是类型说明符,word[100]是声明符。 &#34;阵列&#34;如果我们更改了类型说明符,那么word被指定为声明符的一部分:

int word[100];

我们现在有一个100个元素的int数组。

Array-ness,pointer-ness和function-ness都在声明符中指定:

T a[N]; // a is an N-element array of T
T *p;   // p is a pointer to T
T f();  // f is a function returning T

其中T代表类型说明符和限定符的某种组合。数组,指针和函数可以组合成任意复杂的类型:

T *a[N];      // a is an N-element array of pointers to T
T (*a)[N];    // a is a pointer to an N-element array of T
T *(*f())[N]; // f is a function returning a pointer to an N-element array of
              // pointers to T

等。

<小时/>

  1. 要么是因为你没有存储一个0值的字符,要么是因为你要存储多个没有标记任何结尾的0值字符。