Структура программы на языке С. Основы языка Си: структура Си-программы, базовые типы и конструирование новых типов, операции и выражения

Авто 07.07.2019
Авто

СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ

Теперь, после того как мы привели конкретный пример, вы готовы к тому, чтобы познакомиться с несколькими общими правилами, касающимися программ, написанных на языке Си. Программа состоит из одной или более функций, причем какая-то из них обязательно должна называться main() . Описание функции состоит из заголовка и тела. Заголовок в свою очередь состоит из директив препроцессора типа #include и т. д. и имени функции.

РИС. 2.4. Структура функции в языке Си: заголовок и тело.

Из книги C++ автора Хилл Мюррей

1.6 Структура программы Программа на С++ обычно состоит из большого числа исходных файлов, каждый из которых содержит описания типов, функций, переменных и констант. Чтобы имя можно было использовать в разных исходных файлах для ссылки на один и тот же объект, оно должно

Из книги Домашний архитектор. Подготовка к ремонту и строительству на компьютере автора Булат Виталий

Структура программы Super Home Suite Рассмотрим главное окно программы Super Home Suite (демонстрационной версии 3.5.2) (рис. 2.1). Рис. 2.1. Главное окно программы Super Home SuiteВверху расположено системное меню, включающее разделы команд для управления программой, редактированием данных,

Из книги Информатика и информационные технологии: конспект лекций автора Цветкова А В

Структура программы Окно программы PromOffice Euroremont (рис. 3.1) состоит из нескольких частей. Вверху находится горизонтальная панель с главным меню, под ней – панель инструментов. Остальную область окна занимают панели для работы с данными. В последней версии программы в правом

Из книги Информатика и информационные технологии автора Цветкова А В

1. Структура программы на ассемблере Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами памяти. Программа может состоять из одного или нескольких таких блоков-сегментов. Каждый сегмент содержит совокупность предложений языка,

Из книги Язык программирования С# 2005 и платформа.NET 2.0. автора Троелсен Эндрю

47. Структура программы на ассемблере Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами памяти. Программа может состоять из одного или нескольких таких блоков-сегментов. Каждый сегмент содержит совокупность предложений

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Структура простой программы на C# Язык C# требует, чтобы вся логика программы содержалась в рамках определения некоторого типа (вспомните из главы 1, что термин тип используется для обозначения любого элемента множества {класс, интерфейс, структура, перечень, делегат}). В

Из книги Создаем вирус и антивирус автора Гульев Игорь А.

СТРУКТУРА ПРОГРАММЫ Исходная программа Исходная программа представляет собой совокупность следующих элементов: директив препроцессора, указаний компилятору, объявлений и определений. Директивы препроцессора специфицируют действия препроцессора по преобразованию

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Структура и процесс загрузки COM-программы Что же представляет собой COM-программа, как она загружается в память и запускается?Структура COM-программы предельно проста – она содержит только код и данные программы, не имея даже заголовка. Размер COM-программы ограничен

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Структура и процесс загрузки EXE-программы В отличие от COM-программ, EXE-программы могут состоять из нескольких сегментов (кодов, данных, стека). Они могут занимать больше 64Кбайт.EXE-файл имеет заголовок, который используется при его загрузке. Заголовок состоит из

Из книги Конец холивара. Pascal vs C автора Кривцов М. А.

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ Давайте рассмотрим простую программу на языке Си. Следует сразу сказать, что такой пример нужен нам лишь для выявления некоторых основных черт любой программы, написанной на языке Си. Далее мы дадим пояснения к каждой строке, но, перед

Из книги Linux и все, все, все... Статьи и колонки в LinuxFormat, 2006-2013 автора Федорчук Алексей Викторович

18.5.1. Простой цикл for Этот цикл просто выводит на экран список, который состоит из " 1 2 3 4 5". Чтобы получить доступ к каждой переменной, в качестве параметра имя_переменной указывается "loop".$ pg for_i#!/bin/sh# for_ifor loop in 1 2 3 4 5doecho $LOOP doneПриведенный выше сценарий выводит следующие данные:$

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

1. Структура программы на языке Pascal В программе на Pascal выделяют следующие основные разделы: заголовок программы, описания, операторы. Разделы отделяются друг от друга точкой с запятой. В конце программы ставится точка. Каждый раздел начинается со своего ключевого

Из книги автора

1. Структура программы на языке C Программа может состоять из одной или нескольких, связанных между собой, функций, главная из которых называется main – именно с нее начинается выполнение программы. Поэтому, наличие функции с таким именем в любой программе

Из книги автора

Создаём простой пул Освоив ранее основные понятия, мы научились понимать ZFS. Для обратной же задачи – чтобы ZFS понимала нас – нужно ознакомиться с её командами. Главные из них – две: zpool для создания и управления пулами, и zfs для создания и управления наборами данных.

Из книги автора

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

Из книги автора

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

Последнее обновление: 18.05.2017

Программа на языке Си состоит из набора директив препроцессора, определений функций и глобальных объектов. Директивы препроцессора управляют преобразованием текста до его компиляции. Глобальные объекты определяют используемые данные или состояние программы. А функции определяют поведение или действия программы. Простейшая программа на Си, которая была определена в прошлых темах:

#include int main(void) { printf("Hello world! \n"); return 0; }

Инструкции

Простейшим строительным элементом программы на Си являются инструкции (statements). Каждая инструкция выполняет определенное действие. В конце инструкций в языке Си ставится точка с запятой (;). Данный знак указывает компилятору на завершение инструкции. Например:

Printf("Hello world!");

Вызов функции printf, которая выводит на консоль строку "Hello world!" является инструкцией и завершается точкой с запятой.

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

{ printf("Hello world!"); printf("Bye world!"); }

В этом блоке кода две инструкции. Обе инструкции представляют вызов функции printf() и выводят определенную строку на консоль.

Директивы препроцессора

Для вывода данных на консоль в примере выше используется функция printf() , но чтобы использовать эту функцию, чтобы она вообще стала нам доступна в программе на Си, необходимо в начале файла с исходным кодом подключать заголовочный файл stdio.h с помощью директивы include .

Директива include является директивой препроцессора. Кроме данной include есть еще ряд директив препроцессора, например, define.

Каждая директива препроцессора размещается на одной строке. И в отличие от обычных инструкций языка Си, которые завершаются точкой с запятой ; , признаком завершения препроцессорной директивы является перевод на новую строку. Кроме того, директива должна начинаться со знака решетки #.

Непосредственно директива "include" определяет, какие файлы надо включить в данном месте в текст программы. По умолчанию мы можем подключать стандартные файлы из каталога так называемых "заголовочных файлов", которые обычно поставляются вместе со стандартными библиотеками компилятора. И файл "stdio.h" как раз является одним из таких заголовочных файлов.

Вообще сам термин "заголовочный файл" (header file) предполагает включение текста файла именно в начало или заголовок программы. Поэтому заголовочные файлы подключаются, как правило, в начале исходного кода. Кроме того, заголовочный файл должен быть подключен до вызова тех функций, которые он определяет. То есть, к примеру, файл stdio.h хранит определение функции printf, поэтому этот файл необходимо подключить до вызова функции printf.

Но в целом директивы препроцессора необязательно должны быть размещены в начале файла.

При компиляции исходного кода вначале срабатывает препроцессор, который сканирует исходный код на наличие строк, которые начинаются с символа #. Эти строки расцениваются препроцессором как директивы. И на месте этих директив происходит преобразование текста. Например, на месте директивы #include вставляется код из файла stdio.h.

Функция main

Стартовой точкой в любую программу на языке Си является функция main() . Именно с этой функции начинается выполнение приложения. Ее имя main фиксировано и для всех программ на Си всегда одинаково.

Функция также является блоком кода, поэтому ее тело обрамляется фигурными скобками, между которыми идет набор инструкций.

Стоит отметить, что в разной литературе и примерах можно встретить модификации этой функции. В частности, вместо определения выше мы могли бы написать по другому:

#include void main() { printf("Hello world!"); }

#include int main() { printf("Hello world!"); return 0; }

Использование этих определений не было бы ошибкой, и программа также вывела бы строку "Hello world" на консоль. И для большинства компиляторов это было бы нормально.

Далее мы подробнее рассмотрим определение функций, но здесь надо учитывать следующий аспект. Определение функции в виде int main(void) зафиксировано в стандарте языка С11. Компиляторы прежде всего ориентируются на стандарт языка, его спецификацию. Поэтому если мы используем то определение, которое дано в стандарте языка, то больше шанс, что оно будет поддерживаться всеми компиляторами. Хотя опять же повторюсь, в использовании второго варианта или int main() большой ошибки не будет.

Полностью последний стандарт C11 можно посмотреть по

Пожалуйста, приостановите работу AdBlock на этом сайте.

Я надеюсь вы уже установили себе на компьютер какую-нибудь IDE и научились в ней компилировать программы. Если нет, то

Все программы, написанные на языке Си, имеют общую структуру. О которой мы и поговорим в этом уроке. В этом нам поможет наша первая программа, написанная на предыдущем шаге.

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

Рис.1 Карта "Структура программ на языке Си." Начальный уровень.

На протяжении всего курса мы к этой карте будем возвращаться, уточнять её, дополнять новыми элементами и блоками.

Сейчас внимание. Не пугайтесь! Ниже написан исходный код трёх простеньких программ. Ваша задача внимательно на них посмотреть и попытаться найти в их коде какую-то закономерность (нечто общее, что есть в каждой программе).

Листинг 1. Программа 1. Печатает «Hello, World!»

#include

Листинг 2. Программа 2

Int main(void) { int a, b, c; a = 5; b = 10; c = a+b; return 0; }

Листинг 3. Программа 3

#include int main(void) { FILE *fp; fp = fopen("input.txt", "w"); fprintf(fp, "This is Sparta!"); fclose(fp); return 0; }

Не торопитесь смотреть продолжение урока и правильный ответ на эту задачу. Для начала попробуйте ответить самостоятельно. После этого нажмите кнопку "Смотреть продолжение!"

Итак, ответ: Во всех программах выше присутствует следующая конструкция:

Листинг 4. Главная функция любой программы на языке Си - функция main.

Int main(void) { return 0; }

Что же это за конструкция. Это объявление функции main. Такая функция обязательно есть в каждой программе, которая написана на языке Си.Большая программа или маленькая, компьютерная игра или программа "Hello, World!", написана вами или Биллом Гейтсом -- если программа написана на языке Си -- в ней есть функция main. Это так сказать главная функция нашей программы. Когда мы запускаем программу, то можно думать, что запускаем функцию main этой программы.

Остановимся на секундочку. Мы, кажется, уже кое-что выяснили о структуре программ на языке Си. Любая программа на языке Си должна содержать функцию main. Отобразим этот факт на нашей карте знаний "Структура программ на языке Си."

Рис.2 Карта "Структура программ на языке Си." Функция main.

Теперь карта не напрягает нас своей зияющей пустотой. Продолжим наши исследования.

Давайте я расскажу немного о функции main и о функциях вообще.

Перед именем функции написано int, это сокращение от слова integer, которое переводится с английского, как "целое". Подобная запись означает, что когда функция main завершит свою работу, она должна вернуть вызывающей программе (в нашем случае это операционная система) какое-нибудь целое число. Обычно, для функции main это число ноль, которое оповещает операционную систему: "Мол, всё хорошо. Происшествий не случилось."

Случалось ли вам видеть сообщения об ошибках на экране своего компьютера? Обычно там пишут что-то вроде "Программа аварийно завершена... бла-бла-бла... Код -314." Вот это примерно тоже самое. Разница в том, что когда случаются проблемы операционная система нас об этом оповещает, а когда всё хорошо она нас лишний раз не беспокоит.

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

Внутри фигурных скобок идёт описание функции main, т.е. непосредственно то, что эта функция должна делать.

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

Вы можете спросить, а почему именно нуль? А чёрт его знает! Просто так обычно делают. Можно, в принципе, возвращать какое-нибудь другое целое число, например 100, или -236. Лишь бы оно было целым числом. Помните про int? Поэтому и целое.

Вот мы и разобрались с функцией main. Ещё один момент. То что записано в фигурных скобках обычно называют "тело функции" (или описание функции), а первую часть, та что перед фигурными скобками называется заголовок функции.

Вернёмся теперь к нашей первой программе "Hello, World" и посмотрим, что там к чему.

Листинг 5. Программа «Hello, World»

#include int main(void) { printf("Hello, World!\n"); return 0; }

Кое-что нам теперь уже понятно в этой программе. Не ясными остаются только две строки, пойдём по порядку.

Листинг 6. Директива include

#include

Данная строчка это сообщение компилятору. Такие сообщения, начинающиеся с символа #, называются директивами компилятора. Буквально: «подключи файл stdio.h». Во время компиляции вместо этой строчки вставится содержимое файла stdio.h. Теперь немного поговорим об этом файле. stdio.h (от англ. STanDart Input Output) это заголовочный файл, в нем описаны различные стандартные функции, связанные с вводом и выводом.

Возникает резонный вопрос "А зачем нам писать эту строчку? Зачем нам вообще понадобилось вставлять сюда этот файл?" Это нужно для того, что бы в своей программе, мы могли использовать стандартную функцию вывода на экран printf().

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

Так же и компилятор. Когда он встречает какую-нибудь функцию, он ищет её описание (т.е. что она должна делать и что обозначает) в начале программы (с самого начала и до момента её использования в программе). Так вот, функция printf() описана в файле stdio.h. Поэтому мы и подключаем его. А вот когда мы его подключим, компилятор сможет найти функцию printf(), иначе он выдаст ошибку.

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

Рис.3 Карта "Структура программ на языке Си." Блок подключения заголовочных файлов.

Продолжим разбираться с нашей программой.

Листинг 7. функция printf()

Printf("Hello, World!\n");

В этой строке мы вызываем стандартную функцию вывода на экран printf(). В данном простейшем случае мы передаем ей один параметр, строку, записанную в кавычках, которую надо вывести на экран, в нашем случае это Hello, World! \n. Но постойте, а что это за \n? На экране, во время запуска программы, никаких \n не было. Зачем тогда мы тут это написали? Данная последовательность это специальный символ, который является командой перейти на следующую строку. Это как в MS Word нажать клавишу Enter. Таких специальных символов несколько, все они записываются с помощью символа "\" - обратный слеш. Такие специальны символы называются управляющими символами. Потом я еще покажу вам их. В остальном на экране появится именно то, что вы написали в двойных кавычках.

Кстати, обратите внимание, каждая команда языка Си заканчивается символом «;» (точкой с запятой). Это похоже на точку в конце предложения, в русском языке. В обычном языке мы разделяем точкой предложения, а в языке программирования Си, точкой с запятой отделяем команды друг от друга. Поэтому ставить точку с запятой обязательно. Иначе компилятор будет ругаться и выдаст ошибку.

Чтобы вызвать какую-нибудь функцию, необходимо написать её имя и указать передаваемые ей параметры в круглых скобках. У функции может быть один или несколько параметров. А может не быть параметров вовсе, в таком случае в скобках писать ничего не нужно. Например, выше мы вызвали функцию printf() и передали ей один параметр строку, которую необходимо вывести на экран.

Кстати, полезный совет. Так как в каждой программе обязательно присутствует функция main, и буквально в каждой программе нам потребуется что-то выводить на экран, то рекомендую вам сразу создать файл со следующей заготовкой, чтобы каждый раз не писать одно и то же.

Листинг 8. Стандартная заготовка для программ на языке Си.

#include int main(void) { return 0; }

Ну вот вроде бы и всё. Этом первый урок можно считать законченным. Хотя нет, ещё один момент есть.

Самое главное в этом уроке это, конечно, общая структура программы. Но кроме того, мы научились выводить на экран произвольный текст. Кажется, что совсем ничего вроде и не узнали, но даже этого хватит для того, чтобы, например, сделать небольшой подарок своей маме на 8 марта.


Исходный код программы-открытки есть в архиве с исходными кодами этого урока. Экспериментируйте! У вас всё получится.

Программа, написанная на C# состоит из следующих блоков:

  • объявление пространства имен (своего рода контейнера);
  • объявление класса (основная сущность программы);
  • методы класса (подпрограммы), как минимум метод Main ;
  • операторы и выражения;
  • комментарии.

Пример простейшей программы

Давайте рассмотрим простейшую программу, написанную на C#. Это будет консольное приложение, выводящее строку «Hello World» (своего рода классика, для первой программы в практике программиста). Код такой программы приведен ниже, давайте рассмотрим его:

//Подключение пространства имен System using System; //Объявление пространства имен namespace ProgramStructure { //Объявление класса class Program { //Главный метод программы static void Main(string args) { //Вывод строки Console.WriteLine("Hello World!"); //Вспомогательный оператор Console.ReadKey(); } } }

Первая строка данной программы, это комментарий. Комментарии никак не влияют на работу программы, они нужны для человека, который будет сопровождать код программы (дорабатывать её, исправлять ошибки и т.п.).

Вторая строка программы (using System; ) является оператором, который подключает стандартное пространство имен System . По сути, мы получаем доступ к набору классов имеющихся в «контейнере» System . Как видно, данная строка состоит из двух слов, первое (ключевое слово using ) означает, что мы хотим подключить пространство имен, а второе System — название нужного пространства имен.

В конце второй строки стоит символ «;», который обозначает завершение оператора. Каждый оператор программы должен заканчиваться таким символом.

Четвертая строка программы снова является комментарием, ровно как и строки 7, 10, 13, 15. Комментарии в C# начинаются с символов «//» (две косые черты, два слэша), и действуют только до конца строки.

В C# есть и многострочные комментарии, иногда удобнее использовать их, мы еще столкнемся с ними.

В пятой строке (namespace ProgramStructure ) объявляется своё пространство имен, оно называется «ProgramStructure». Пространство имен является своего рода контейнером, и оно ограничивается фигурными скобками (открывающей — строка 6 и закрывающей — строка 19), следующими за его названием. Таким образом, все что находится между строками 6 и 19 принадлежит пространству имен ProgramStructure .

В строке 8 объявляется класс с именем «Program», это основной и единственный класс нашей программы. Как можно заметить, для объявления класса служит ключевое слово class за которым следует имя класса. В программе, может быть и не один, а несколько классов. Как правило, класс состоит из набора методов, которые определяют так называемое поведение класса (если хотите, функциональность). Границы класса, так же как и пространства имен обозначаются фигурными скобками (строки 9 и 18). В нашем случае, класс имеет только один метод, это метод Main .

В строке 11 как раз и объявляется метод Main . Этот метод является главным в нашей программе, так называемая точка входа в программу. Это означает, что при запуске программы, первым будет выполняться именно метод Main . Каждый метод тоже имеет границы, которые так же обозначаются фигурными скобками (строки 12 и 17).

Метод Main нашей программы содержит только два оператора. Эти операторы значатся в строках 14 и 16. Первый выводит сообщение «Hello World!». А второй, является вспомогательным, он заставляет программу ждать нажатие клавиши на клавиатуре, и не дает её до этого момента завершить свое выполнение (без этого оператора, программа бы вывела строку и быстро закрылась, так что мы даже не успели прочитать что она вывела).

А теперь попробуйте собрать и запустить это программу в Visual Studio. Для этого нужно:

  • запустить Visual Studio;
  • создать новый проект консольного приложения;
  • скопировать строки 13-16 из приведенного выше примера;
  • вставить эти строки в метод Main созданного в Visual Studio проекта;
  • нажать клавишу F5.

О том как создавать проект консольного приложения в Visual Studion я подробно рассказывал в , советую прочитать его.

Любая программа, написанная на языке Си, состоит из одной или более "функций", являющихся основными модулями, из которых она собирается.

Пример структуры простой программы на языке Си:

Общий вид

Пример

директивы препроцессора

# include

# define N 10

имя главной функции

начало тела главной функции

объявления переменных и массивов

int x=1; char str[N];

операторы программы

puts(" Введите имя ");

gets(str);

printf("\n %s, Вы %d мой гость!",str,x);

Конец тела главной функции

      1. Директивы препроцессора

Составной частью компилятора является программа, называемая препроцессором . Препроцессор работает до трансляции программы с языка высокого уровня на машинный язык, выполняя её предварительное преобразование. Каждая директива препроцессора начинается с символа # (номер) и занимает всю строку. Директивы, которые не помещаются в одной строке, могут быть продолжены в следующей строке. Признаком продолжения строки является символ обратной косой черты (\) в продолжаемой строке.

Наиболее часто используется директива включения в программу файла

# include < name >

где name – имя файла, включаемого в текст программы.

Эту директиву называют директивой подстановки . Она предписывает компилятору поместить на её место файл name . Файл name называется заголовочным. Он содержит объявления данных и функций, используемых в программе. Например, включение в программу директивы

# include < math . h >

позволит использовать в программе стандартные математические функции, такие как sin x, cos x, ln x и т.д. Список стандартных математических функций будет приведён ниже.

Директива

# include < stdio . h >

даёт возможность использования в программе стандартных функций ввода-вывода.

Другой часто используемой директивой является директива определения

#define S1 S2

где S1, S2 – строки символов.

Препроцессор отыскивает в тексте программы строку символов S 1 и заменяет её строкой S 2 . Например, включение в программу директивы

# define P printf

позволит набирать на клавиатуре букву P вместо слова printf .

Эта замена не выполняется внутри текстовых строк (литералов), символьных констант и комментариев, т.е. действие директивы #define не распространяется на тексты, ограниченные кавычками, апострофами и находящимися внутри комментариев.

      1. Главная функция

Каждая программа на языке Си должна содержать объявление функции main (), которая называется главной функцией. Как правило, эта функция не имеет параметров и не возвращает никакого значения. Для указания этого факта используется слово void . Таким образом, строка с именем главной функции обычно имеет вид:

void main(void)

void main()

      1. Переменные и массивы

Массивом называется группа переменных одного типа с общим именем. Именем переменной или массива является идентификатор – последовательность, составленная из символов:

a – z, A - Z , 0 – 9,_(подчеркивание),

причём первым символом не может быть цифра. Строчные и прописные символы латинского алфавита воспринимаются как разные символы. В качестве имени переменной или массива не могут использоваться служебные слова языка Си. Основные служебные слова языка Си приведены в Приложении.

Элементы массива различаются своими номерами (индексами). Индекс может принимать только целые неотрицательные значения. Индекс записывается после имени массива в квадратных скобках. Индексов может быть несколько. В этом случае каждый индекс записывается в своих квадратных скобках.

В языке Си могут использоваться переменные и массивы различных типов. Данные каждого типа занимают определённое количество байт памяти и могут принимать значения из определённого диапазона. Объём этой памяти и, соответственно, диапазон принимаемых значений в разных реализациях языка Си могут различаться. Количество байт памяти, занимаемой переменной определённого типа для конкретной реализация языка Си можно определить с помощью операции sizeof (тип). Например, определить объём памяти, отводимой под переменную целого типа, можно так:

k = sizeof(int);

printf (“ Под переменную типа int отводится %d байт памяти”, k );

В данных методических указаниях рассматриваются три основных типа переменных и массивов, приведены типичные значения объёма занимаемой памяти и диапазона значений (табл. 1):

Таблица 1

Спецификатор типа (Ключевое слово)

Значение

Размер

памяти (байт)

Диапазон значений

Число целого типа

32768 . . . +32767

2147483648 . . . +2147483647

Действительный

Число действительного типа

3.4ּ10 -38 . . . 3.4ּ10 38

(по модулю)

Символьный

128 . . . +127

Несколько подробнее остановимся на переменной типа char . Как видно из табл. 1, переменная типа char занимает один байт памяти. В одном байте памяти можно записать либо целое число без знака из диапазона , либо целое число со знаком из диапазона [–128, 127]. Это число является кодом одного из 256 символов. Символ, соответствующий данному коду, определяется используемой кодовой таблицей. Таким образом, значение переменной типа char может рассматриваться либо как целое число, либо как символ, код которого равен этому числу.



Рекомендуем почитать

Наверх