In you code , the are the same. And in computer view, they always the same.
However, thinking if you have
char str_new_o1[10000];
char str_new_02[10000];
char str_new_03[10000];
char str_new_04[10000];
char str_new_05[10000];
...
char str_new_100[10000];
Even maybe they are in different files in differnt floders.
And all arrays should have the same size(because they have the same meaning ). well they are now.
But ,other day , you find you need change the size of arrays, you need 2000 now, so you need change all of those arrays , one forget ,lots errors. Now , we call the 1000 a Magic Number .
While , if you define 1000 as a marco , you only need change once ,nothing need worry.
So , they are different in our view, if you only have one array, use the number directly , because a not necessary marco is evil , while if you have lots of same size arrays , use a marco to avod magic number .
#define MAX_LEN = 10000or#define MAX_LEN 10000;, as those include characters you don't want to substitute.(). Eg, if you code#define MY_CONST 5 + 10and thenint x = MY_CONST * 3;, you'll getint x = 5 + 10 * 3;and a result of 35 rather than 45. So code#define MY_CONST (5 + 10).