Вариации функции main()

Существует несколько разновидностей функции main(). Первый вариант – это то, что предлагает нам Visual Studio по умолчанию. В скобках указываются параметры, которые передаются в программу, если соответствующий ей исполняемый exe-файл вызывается через командную строку. Аргумент argc – это число параметров, а массив argv[] – это список параметров.

int _tmain(int argc, _TCHAR* argv[]) {

return 0;

}

Стандартный вид функции main() следующий:

int main(int argc, _TCHAR* argv[]) {

return 0;

}

Для многих программ передаваемые параметры не требуются, поэтому их можно опустить:

int main() {

return 0;

}

Некоторые компиляторы, в частности, тот, который задан по умолчанию в Microsoft Visual Studio, поддерживают функцию main() без указания кода возврата:

void main() {

}

Данный способ удобен, поскольку здесь нет ничего лишнего, однако некоторые компиляторы, например, тот, который по умолчанию встроен в Code::Blocks, не поддерживают такой вид функции main().

При разработке программ из данного курса можно использовать любой из рассмотренных вариантов.

Переменные и типы данных

Любая компьютерная программа – это набор команд, оперирующих с переменными и производящих какие-то вычисления; даже слово «computer» (компьютер) переводится на русский язык как «вычислитель».

В математике мы сталкиваемся с переменными, значениями которых являются числа. Числа бывают натуральными, целыми, рациональными, вещественными, комплексными и т.д. Существуют также булевы (логические) переменные, которые могут принимать два значения: истина или ложь, хотя и этим значениям часто ставятся в соответствие числа 0 и 1. Таким образом, каждая переменная имеет свой тип, определяющий диапазон возможных значений этой переменной.

Переменные, с которыми работает компьютерная программа, также имеют свои типы. При разработке программ выбирать тип переменной следует, руководствуясь смыслом решаемой задачи. Например, переменная, предназначенная для хранения информации о количестве жителей города, должна иметь тип, соответствующий натуральным числам. Переменную, хранящую фамилию человека, разумно сделать строкой, а переменной, предназначенной для вычисления среднего веса членов футбольной команды, лучше всего задать вещественный тип.

Строго говоря, переменная – это именованный участок памяти, размер которого определяется типом этой переменной. Узнать размер типа можно при помощи функции sizeof(). Ниже будет рассмотрен пример ее использования, а сейчас перечислим основные типы данных языка Си.

Тип Описание Размер типа (байт)
Диапазон значений
char Символ или целое число со знаком
-128..127
unsigned char Символ или целое число без знака
0..255
short Целое число со знаком
-32768..32767
unsigned short Целое число без знака
0..65535
int Целое число со знаком
-2147483647..2147483647
unsigned int Целое число без знака
0..4294967295
float Вещественное Число
6 знаков после запятой
double Вещественное Число
10 знаков после запятой
bool Логический Тип
true и false (0 и 1)
void Пустой тип -
-

Перед работой с переменной ее необходимо объявить; объявление переменной – это указание ее имени и типа. Переменные могут быть объявлены по одной или сразу несколько, при этом указываются тип переменной и ее имя через пробел, а завершается объявление точкой с запятой. Если сразу объявляется несколько переменных, то они перечисляются через запятую:

int number, age, weight;

float length, width;

bool isEven;

char symbol;

Присвоение значения объявленной переменной – это занесение значения в выделенную под переменную ячейку памяти. Осуществляется присвоение при помощи оператора =. Указывается имя переменной и ее новое значение, а между ними ставится оператор присваивания:

number = 10;

length = 2.5;

isEven = true;

symbol = 'A';

Присвоить значение переменной также можно при ее объявлении, в этом случае говорят, что происходит инициализация переменной или переменная инициализируется:

int number = 10, x=7;

float length = 2.5;

bool isEven = true;

char symbol = '*', letter = 'A';

Имя переменной нужно выбирать так, чтобы оно отражало назначение этой переменной. Конечно, можно добавить комментарий:

//Возраст студента

int x;

однако предпочтительнее использовать следующее имя:

int student_age;

В таком случае комментарий вообще не понадобится.

Язык Си, как и большинство современных языков программирования, допускает объявление переменной в любом месте программы. В отличие, например, от языка Паскаль, в котором все переменные объявляются в специальном блоке под названием Var. Более того, существует рекомендация объявлять переменную максимально близко к тому месту, где она используется. Например, если переменная используется только внутри некоторой функции, то объявлять ее нужно внутри функции, а если переменная используется только внутри тела цикла, то объявлять ее нужно внутри тела цикла.

Наши рекомендации