<p>What is the difference between</p>

<pre><code>char str1[32] = "\0";
</code></pre>

<p>and </p>

<pre><code>char str2[32] = "";
</code></pre>

Since you already declared the sizes, the two declarations are exactly equal. However, if you do not specify the sizes, you can see that the first declaration makes a larger string:
```
```
char a[] = "a\0";
char b[] = "a";

printf("%i %i\n", sizeof(a), sizeof(b));
```
```
prints
```
```
3 2
```
```
This is because a ends with two nulls (the explicit one and the implicit one) while b ends only with the implicit one.