#include <stdio.h>
int main(int argc, char **argv)
{
int i;
char myarray[4];
short secondarray[6];
char *thirdarray[12];
printf("Uninitialised arrays:");
for (i = 0; i < 4; ++i)
{
printf("myarray[%d] = '%c' or %d\n", i
, myarray
[i
], myarray
[i
]); }
for (i = 0; i < 6; ++i)
{
printf("secondarray[%d] = %d\n", i
, secondarray
[i
]); }
for (i = 0; i < 12; ++i)
{
printf("thirdarray[%d] = %p\n", i
, thirdarray
[i
]); }
// Loop until newline is read
printf("\n\nPress ENTER to continue...");
while (getchar() != '\n') // Loop until we get the newline character from the input ; // A quick and dirty loop - probably should also check for EOF!
printf("\n\n"); // Add some blank lines before the next part
{
short shortarray[2] = {4, 1};
char chararray[3] = {'o', 'n', 'e'};
long longarray[] = {100000, 5, 543};
char chararray2[] = {'C', '-', 'S', 't', 'r', 'i', 'n', 'g', '\0'};
/* sizeof() is an operator which returns the size (in terms of the size of a char) of
* its operand. You can use it on many different things, e.g. arrays (size of array),
* pointers (size of the pointer), basic types, etc. If we have the full array
* declaration, i.e. the name with the [] on it, then we can determine the number of
* elements from the size of the array divided by the size of an element. */
for (i = 0; i < (sizeof(shortarray) / sizeof(short)); ++i)
{
printf("shortarray[%d] = %d\n", i
, shortarray
[i
]); }
for (i = 0; i < (sizeof(chararray) / sizeof(char)); ++i)
{
printf("chararray[%d] = '%c' or %d\n", i
, chararray
[i
], chararray
[i
]); }
for (i = 0; i < (sizeof(longarray) / sizeof(long)); ++i)
{
printf("longarray[%ld] = %d\n", i
, longarray
[i
]); }
for (i = 0; i < (sizeof(chararray2) / sizeof(char)); ++i)
{
printf("chararray2[%d] = '%c' or %d\n", i
, chararray2
[i
], chararray2
[i
]); }
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCnsKCWludCBpOwoKCWNoYXIgbXlhcnJheVs0XTsKCXNob3J0IHNlY29uZGFycmF5WzZdOwoJY2hhciAqdGhpcmRhcnJheVsxMl07CgoJcHJpbnRmKCJVbmluaXRpYWxpc2VkIGFycmF5czoiKTsKCglmb3IgKGkgPSAwOyBpIDwgNDsgKytpKQoJewoJCXByaW50ZigibXlhcnJheVslZF0gPSAnJWMnIG9yICVkXG4iLCBpLCBteWFycmF5W2ldLCBteWFycmF5W2ldKTsKCX0KCglmb3IgKGkgPSAwOyBpIDwgNjsgKytpKQoJewoJCXByaW50Zigic2Vjb25kYXJyYXlbJWRdID0gJWRcbiIsIGksIHNlY29uZGFycmF5W2ldKTsKCX0KCglmb3IgKGkgPSAwOyBpIDwgMTI7ICsraSkKCXsKCQlwcmludGYoInRoaXJkYXJyYXlbJWRdID0gJXBcbiIsIGksIHRoaXJkYXJyYXlbaV0pOwoJfQoKCS8vIExvb3AgdW50aWwgbmV3bGluZSBpcyByZWFkCglwcmludGYoIlxuXG5QcmVzcyBFTlRFUiB0byBjb250aW51ZS4uLiIpOwoKCXdoaWxlIChnZXRjaGFyKCkgIT0gJ1xuJykgLy8gTG9vcCB1bnRpbCB3ZSBnZXQgdGhlIG5ld2xpbmUgY2hhcmFjdGVyIGZyb20gdGhlIGlucHV0Cgk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgcXVpY2sgYW5kIGRpcnR5IGxvb3AgLSBwcm9iYWJseSBzaG91bGQgYWxzbyBjaGVjayBmb3IgRU9GIQoKCXByaW50ZigiXG5cbiIpOyAvLyBBZGQgc29tZSBibGFuayBsaW5lcyBiZWZvcmUgdGhlIG5leHQgcGFydAoKCXsKCQlzaG9ydCBzaG9ydGFycmF5WzJdID0gezQsIDF9OwoJCWNoYXIgY2hhcmFycmF5WzNdID0geydvJywgJ24nLCAnZSd9OwoKCQlsb25nIGxvbmdhcnJheVtdID0gezEwMDAwMCwgNSwgNTQzfTsKCQljaGFyIGNoYXJhcnJheTJbXSA9IHsnQycsICctJywgJ1MnLCAndCcsICdyJywgJ2knLCAnbicsICdnJywgJ1wwJ307CgoJCS8qIHNpemVvZigpIGlzIGFuIG9wZXJhdG9yIHdoaWNoIHJldHVybnMgdGhlIHNpemUgKGluIHRlcm1zIG9mIHRoZSBzaXplIG9mIGEgY2hhcikgb2YKCQkgKiBpdHMgb3BlcmFuZC4gWW91IGNhbiB1c2UgaXQgb24gbWFueSBkaWZmZXJlbnQgdGhpbmdzLCBlLmcuIGFycmF5cyAoc2l6ZSBvZiBhcnJheSksCgkJICogcG9pbnRlcnMgKHNpemUgb2YgdGhlIHBvaW50ZXIpLCBiYXNpYyB0eXBlcywgZXRjLiBJZiB3ZSBoYXZlIHRoZSBmdWxsIGFycmF5CgkJICogZGVjbGFyYXRpb24sIGkuZS4gdGhlIG5hbWUgd2l0aCB0aGUgW10gb24gaXQsIHRoZW4gd2UgY2FuIGRldGVybWluZSB0aGUgbnVtYmVyIG9mCgkJICogZWxlbWVudHMgZnJvbSB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgZGl2aWRlZCBieSB0aGUgc2l6ZSBvZiBhbiBlbGVtZW50LiAqLwoKCQkgZm9yIChpID0gMDsgaSA8IChzaXplb2Yoc2hvcnRhcnJheSkgLyBzaXplb2Yoc2hvcnQpKTsgKytpKQoJCSB7CgkJCSBwcmludGYoInNob3J0YXJyYXlbJWRdID0gJWRcbiIsIGksIHNob3J0YXJyYXlbaV0pOwoJCSB9CgoJCSBmb3IgKGkgPSAwOyBpIDwgKHNpemVvZihjaGFyYXJyYXkpIC8gc2l6ZW9mKGNoYXIpKTsgKytpKQoJCSB7CgkJIAkgcHJpbnRmKCJjaGFyYXJyYXlbJWRdID0gJyVjJyBvciAlZFxuIiwgaSwgY2hhcmFycmF5W2ldLCBjaGFyYXJyYXlbaV0pOwoJCSB9CgoJCSBmb3IgKGkgPSAwOyBpIDwgKHNpemVvZihsb25nYXJyYXkpIC8gc2l6ZW9mKGxvbmcpKTsgKytpKQoJCSB7CgkJIAkgcHJpbnRmKCJsb25nYXJyYXlbJWxkXSA9ICVkXG4iLCBpLCBsb25nYXJyYXlbaV0pOwoJCSB9CgoJCSBmb3IgKGkgPSAwOyBpIDwgKHNpemVvZihjaGFyYXJyYXkyKSAvIHNpemVvZihjaGFyKSk7ICsraSkKCQkgewoJCSAJIHByaW50ZigiY2hhcmFycmF5MlslZF0gPSAnJWMnIG9yICVkXG4iLCBpLCBjaGFyYXJyYXkyW2ldLCBjaGFyYXJyYXkyW2ldKTsKCQkgfQoJfQoKCSByZXR1cm4gMDsKfQ==