Tuesday, June 10, 2008

String

char *s1 = "abcde";
char s2[] = "abcde";
char const *s3 = "abcde";
char *const s4 = "abcde";
char s5[] = {'a', 'b', 'c', 'd'};
char s6[11] = "abcde";
char s7[] = {'\0', 'a', 'b'};
char s8[] = {'a', 'b', '\0'};
char s9[11];
printf("%d %d %d %d %d %d %d %d\n",
sizeof(*s1),// 1
sizeof(s1), // 4
sizeof(s2), // 6
sizeof(s5), // 4
sizeof(s6), // 11
sizeof(s7), // 3
sizeof(s8), // 3
sizeof(s9));// 11
printf("%d %d %d %d %d %d %d",
strlen(s1), // 5
strlen(s2), // 5
strlen(s5), // random
strlen(s6), // 5
strlen(s7), // 0
strlen(s8), // 2
strlen(s9));// random

s1[0] = 'f'; // run-time error
s2[0] = 'f'; // OK
s3[0] = 'f'; // compile-time error
*s3 = 'f'; // compile-time error
s3 = "kaf"; // OK
s4[0] = 'f'; // run-time error
s4 = "kaf"; // compile-time error
s5[0] = 'f'; // OK

No comments:

Post a Comment