宣言時に初期化する 2 つの char 配列を使用する C++ でプログラムを作成し、strlen()
その長さを計算するために関数を使用すると、奇妙な出力が得られました。コードを以下に示します
#include<stdio.h>
#include<string.h>
#include<string>
using namespace std;
char consonant[] = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'};
char vowel[] = {'a', 'e', 'i', 'o', 'u'};
int main()
{
int lenv, lenc;
lenc = strlen(consonant);
lenv = strlen(vowel);
printf("lenv = %d and lenc = %d\n", lenv, lenc);
return 0;
}
上記のプログラムを ideone で実行したときの出力は次のとおりです。
lenv = 26 and lenc = 21
コードブロックを使用してウィンドウで実行すると、
lenv = 5 and lenc = 26
このような奇妙な行動の理由を教えてください...