Вопрос:
«Теперь моя книга рассматривает char*
и const char*
то же самое, потому что если это так, то приведенный выше код не будет работать, так как аргументы будут одинаковыми?»
Ну, вы, вероятно, искажаете свою книгу.
Вероятно, эти типы не считаются одинаковыми, потому что они не одинаковы.
ТеперьВаш код:
#include<iostream.h>
[iostream.h] не является частью стандарта C ++.C ++ был стандартизирован в 1998 году, и эта стандартизация обошлась без эры ARM [iostream.h].Таким образом, современный компилятор, вероятно, захлебнется этим.
В качестве обходного пути , когда вы получите себе менее старинный компилятор, вы можете сделать…
#include <iostream>
using namespace std;
Далее,
void display(char*);
void display(const char*);
Объявление функций в верхней части файла, как правило, просто требует дополнительной работы.Часто это означает поддержание двух объявлений функции.Когда вы могли бы иметь дело только с одним объявлением.
void main()
В стандарте C и стандарте C ++ main
не разрешено иметь любой другой тип результата, кроме int
.
Visual C ++ - это один компилятор, который, как расширение языка, допускает void
.
Однако использовать такую возможность довольно глупо, так как это больше для написания и просто делает код нестандартными, вероятно, не будет компилироваться с другими компиляторами.
{
char* ch1="hello";
По правилам C ++ 11 вышеприведенное не будет компилироваться.Это устарело в C ++ 98 и удалено в C ++ 11.Тем не менее, текущие компиляторы AFAIK все еще позволяют это, но некоторые имеют предупреждение, которое может быть включено.
const char *ch2="bye";
display(ch1);
display(ch2);
}
Выше все в порядке, хотя не мешало бы добавить дополнительные const
, например
const char* const ch2="bye";
Приветствия и hth.,