Я настолько смущен, почему инструкция cout не печатает содержимое массива c_braces_array в функции find_depth;Visual studio (std :: cout) не печатает мое значение переменной
Все, что я пытаюсь сделать, это передать массив и распечатать его значения.
#include <iostream>
int find_depth(char c_braces_array[], int no_of_braces)
{
for(int i=0; i<no_of_braces; i++)
{
std::cout<<"val is:"<<c_braces_array[i]<<"F\n";
}
return 0;
}
int main()
{
char braces[100] = {0};
int ret_val = find_depth(braces, 100);
std::cout<<ret_val;
system ("pause");
return 0;
}
O/P:
...
Допустимо: F
Допустимо: F
Допустимо: F
Допустимо: F
Допустимо: F
0Нажмите любую клавишу для продолжения. , ,
Edit: Я инициализируется массив содержит все 0s в главном. Поэтому я ожидал печати 0. Я не уверен, что вещь O (как в Oh!) Входит в контекст. Может кто-нибудь объяснить немного больше об этом?
Я ожидал этого о/р
Вэл: 0 F
Edit - 2: Ребята спасибо. Спасибо, что указали на ошибку. Также я не понимаю, почему следующая строка инициализирует только фигурные скобки [0] с 'a' вместо всего массива. Каков правильный способ инициализации всего массива вместо запуска цикла for.
Теперь мой код выглядит, как показано ниже.
main(){
...
char a_char = 'a';
char braces[100] = {a_char};
}
find_depth(..)
{
...
std::cout<<"val is:"<<c_braces_array_ptr[i]<<"X\n";
}
O/P
Внутри главный: а
Допустимо: аХ
Допустимо: Х
Допустимо: Х
Допустимо: Х
Допустимо: Х
Допустимы : X
Допустимы: X
Допустимы: X
Символ '0' является нулевым терминатором, используемым для завершения строк, в отличие от' '0'', который имеет значение ASCII '48'. Вы также не должны использовать 'system (" pause ")', поскольку у вас нет гарантий того, что сделает программа 'pause' на чужом компьютере. – chris
Это, но ваш массив пуст. – Ryan
Поскольку вы инициализировали массив 'braces' для всех 0, он печатает пустые строки' no_of_braces'. –