Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_Язык С_Базовые понятия языка=.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
123.9 Кб
Скачать

Лекция Базовые понятия языка

Точка с запятой, скобки и комментарии 2

Переменные, константы, операции и выражения 3

Базовые типы данных 3

Объявление переменных 4

Константы 5

Инициализация переменных ' 6

Функции printf() и scanf() 7

Основные понятия

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

• алфавит,

• константы,

• идентификаторы, ' • ключевые слова, - комментарии.

Алфавитом языка называется совокупность символов, используемых в языке.

Очень важно знать и помнить, что язык С различает прописные и строчные буквы. В языке С имена COLOR, Color и color определяют три различных имени переменных.

В именах переменных можно использовать символ подчеркивания. Обычно с символа подчеркивания начинаются имена системных зарезервированных переменных и констант.

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

В языках С и C++ некоторые идентификаторы употребляются как служебные слова (keywords), которые имеют специальное значение для компилятора. Их употребление строго определено, и эти слова не могут использоваться иначе. Ключевыми словами стандарта ANSI языка С являются: auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Каждый компилятор может увеличивать количество ключевых слов, так как компилятор учитывает дополнительные возможности того типа компьютеров, для которых он создан. Например, компилятор Borland C++ 3.1 добавляет к ключевым словам стандарта языка С дополнительные слова, предназначенные для работы с памятью и регистрами процессоров семейства Intel, а также позволяющих использовать прерывания и фрагменты программ на другом языке. Эти дополнительные ключевые слова приведены ниже:

asm _asm __asm cdecl

_cdecl __cdecl _cs __cs

_ds __ds _es __es

export __export far far

40

__far fastcall __fastcall huge

_huge __huge interrupt interrupt

__interrupt loadds __loadds near

near __near pascal _pascal

__pascal _saveregs __saveregs seg

__seg _ss __ss

Язык C++ в дополнение к ключевым словам языка С добавляет еще несколько:

asm catch class friend inline new

operator private protected public template this

throw try virtual

Часть символов язык С рассматривает как пробельные символы. Это не только символ пробела ' ', но и символы табуляции, символы перевода строки (новой строки), возврата каретки, символ перевода страницы (новой страницы).

Комментарий - это часть программы, которая игнорируется компилятором и служит для удобочитаемости исходного текста программы. В процессе компиляции комментарий заменяется пробелом; следовательно, комментарий может располагаться в любом месте программы, где допустимо использование пробела. Комментарием в языке С является любая последовательность символов, заключенная между парами символов /* и */. В стандарте языка С запрещены вложенные комментарии, хотя во многих реализациях компиляторов, в частности в Borland C++, вложенные комментарии разрешены. В языке C++ появился еще один вид комментариев: так называемый однострочный комментарий.

Точка с запятой, скобки и комментарии

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

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

Два фрагмента программ, представленные ниже, эквивалентны:

а)х = у;у = у+1; б)х = у;у = у+1;

mul (x, у); mul (x, у );

Переменные, константы, операции и выражения

Операторы языка С манипулируют переменными и константами в виде выражений. В языке С имена, которые используются для обозначения пе­ременных, функций, меток и других определенных пользователем объектов, называются идентификаторами (identifiers). Идентификатор может содер­жать латинские буквы, цифры и символ подчеркивания, и начинаться обязан с буквы или символа подчеркивания. В стандарте ANSI языка С идентифи­катор определяется своими первыми 32 символами. Как вы помните, в язы­ке С строчные и прописные буквы рассматриваются как разные символы.

Идентификатор не должен совпадать с ключевыми словами.

Базовые типы данных

В языке С все переменные должны быть объявлены до их использова­ния. В нем определены 5 типов данных, которые можно назвать базовыми:

char - символьные,

int - целые,

float - с плавающей точкой,

double — с плавающей точкой двойной длины,

void - пустой, не имеющий значения.

Это основные, или базовые, типы данных.

Типы char и int являются целыми типами и предназначены для хранения целых чисел. Вас не должно смущать название типа char - символьная переменная.

Любой символ в компьютере связан с целым числом - кодом этого символа, например в таблице ASCII. Сам символ нам необходим, когда информация выводится на экран или на принтер или, наоборот, вводится с клавиатуры. Подобные преобразования символа в код и наоборот производятся автоматически. Тип char по умолчанию является знаковым типом, однако настройкой опций интегрированной среды можно установить по умолчанию беззнаковый тип char. Тип int всегда знаковый, так же как и типы float и double.

Переменные типа double и float являются числами с плавающей точкой.

Ключевое слово void отсутствовало в языке С стандарта Керниган&Ритчи и было привнесено в стандарт ANSI С из языка C++. Нельзя создать переменную типа void. Однако введение этого типа оказалось весьма удачным, что вы в дальнейшем увидите.

На основе этих пяти типов строятся дальнейшие типы данных.;

Простейшим приемом является использование модификаторов (modifiers) типа, которые ставятся перед соответствующим типом.

В стандарте ANSI языка С такими модификаторами являются следующие зарезервированные слова:

signed - знаковый, .

unsigned - беззнаковый,

long - длинный,

short - короткий.

Модификаторы signed и unsigned могут применяться к типам char и int. Модификаторы short и long могут применяться к типу int. Модификатор long может применяться также к типу double. Модификаторы signed и unsigned могут комбинироваться с модификаторами short и long в применении к типу int.

Объявление переменных

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

тип <список_переменных>;

Здесь type должен быть одним из существующих в С типов переменных, а <список_переменных> может состоять из одной или нескольких переменных, разделенных запятыми. При объявлении переменных компилятор выделяет место в памяти компьютера, необходимое для размещения переменной данного типа. Примеры объявлений переменных:

int х, у, z; float radius; unsigned char ch; long double integral;

Когда переменная объявляется в программе, очень большое значение имеет то, в каком месте программы она объявляется. Правило, которое оп­ределяет, где переменная может быть использована, зависят от того, где пе­ременная была объявлена, и называется правилом видимости (scope rules).

В языке С могут быть три места, где переменная может быть объявлена. Во-первых, вне каких-либо функций, в том числе и main(). Такая пе­ременная называется глобальной (global) и может использоваться в любом месте программы (за исключением глобальных статических переменных, о которых мы поговорим чуть позже). Во-вторых, переменная может быть объявлена внутри блока, в том числе внутри тела функции. Объявленная та­ким образом переменная называется локальной (local) и может исполь­зоваться только внутри этого блока. Такая переменная неизвестна вне этого блока. Наконец, переменная может быть объявлена как формальный пара­метр функции. Кроме специального назначения этой переменной для пе­редачи информации в эту функцию и места ее объявления переменная мо­жет рассматриваться как локальная переменная для данной функции. .

Рассмотрим пример объявления переменных в разных местах программы:

#include <conio.h>

#include <stdio.h>

/♦Пример9. */

/* пример объявления переменных */

char ch; /* глобальная переменная ch */

main()

{

int n; /* локальная переменная п */

printf("BBeflHTe символ:");

ch=getche(); /* использование глобальной переменной */

printf("BBeflHTe количество символов в строке:");

scanfC%d", &n);

print_str(n); }

print_str(int m) /* формальный параметр m */

{

int j; /* локальная переменная j */

for(j=0;j<m;j++)

printfi["%c\n", ch); / /* использование глобальной переменной ch */ }

Эта программа иллюстрирует использование глобальных и локальных переменных и формальных параметров.