SlideShare a Scribd company logo
Язык программирования C Основы языка baa
Введение Стандарт языка C 1999 года (C99) Язык С — процедурный язык Язык С 1970 год AT&T Bell Laboratoies Отличительные особенности языка: Портируемость исходного кода Возможность действий на низком машинном уровне Эффективность
Структура программы Составляющая часть программы - функция Функции Стандартные — входят в библиотеки Пользовательские — созданные пользователем  Основная функция main  int main(){} int main(void){} int main(int argc, char *argv[]){}
Исходный код Исходный код программы Определение функций  Определение глобальных переменных Декларации препроцессора Код хранится в файлах с расширением «*.c» Пример  int i=0; int main(){ printf(«i=%d»,i); return 0; }
Исходный код Файлы кода Расширение файла «*.c» Содержит определение функций Например int func1(){ /*  Какие-то действия */ Заголовочные файлы Расширение файла «*.h» Содержит декларацию функций Например int func1();
Использование заголовочных файлов Файл src1.c void func1(){ printf(«Hello, world»); } Файл src1.h void func1(); Файл src2.c Код в данном файле использует функцию, определенную в файле src1.c #include «src1.h» ... func1(); ...
Использование комментариев Блочные комментарии Примеры блочных комментариев /* Это комментарий Это комментарий */ /* Это комментарий */ Однострочные комментарии Примеры однострочных комментариев // Это комментарий // Это комментарий // Это тоже комментарий
Идентификаторы Идентификаторы — имена переменных, функций, макросов и структур Символы a-z, A-Z _ 0-9 Не может быть первым символом Первые 31 символ являются значимыми Для функций и глобальных переменных Первые 64 символа являются значимыми Для остальных идентификаторов
Области видимости Файловая область Если идентификатор объявлен вне блоков и списков параметров int i=0; void func(){} Блоковая область Идентификатор определен внутри блока кода {  int i=0; } Область прототипа функции void func(int i, int j); Область функции void func(){ int i; }
Сокрытие переменных int i=1; // используется глобальная переменная int main(){ char i=5; // используется переменная i == 5 ... ... { ... short i=0; // используется i==0 ... } ... // используется i == 5 }
Типы данных Целочисленные данные Знаковые типы Типы без знака char  unsigned char — 1 байт — 0 ..  255 signed char — 1 байт - -128 ... 127 int - 2/4 байта  -32,768 или -2,147,483,648 32,767 или 2,147,483,647 unsigned int - 2/4 байта 0 65,535 or 2,147,483,647 short - 2 байта - -32,768 .. 32,767 unsigned short — 2 байта — 0 .. 65,535
Целочисленные типы long - 4 байта - -2,147,483,648 ..  2,147,483,647 unsigned long — 4 байта — 0 .. 4,294,967,295 long long(C99) — 8 байт  -9,223,372,036, 854,775,808 9,223,372,036, 854,775,807 unsigned long long (C99) — 8 байт 0 18,446,744,073, 709,551,615 Получение размера переменной size_t sizeof(type)
Типы с плавающей запятой float -  4 байта ±3.4E+38 1.2E-38 Точность: 6 знаков double - 8 байт ±1.7E+308 2.3E-308 Точность: 15 знаков long double - 10 байт ±1.1E+4932 3.4E-4932 Точность:  19 знаков
Перечисления enum [имя] { список данных }; enum list1 { value1, value2, value3 } Элементы перечисления инициализируются значениями, начиная с 0 Можно задавать значения самостоятельно enum list2 { value1, value2=4, value5, value6=4 }
Тип void Функция, которая не возвращает значения, может иметь тип void void func{} Использование указателей: void * Указывает на то, что данные представляют адрес Не указывает на тип данных void * func(){ char buf[]={1,0,0,0}; return buf; } int *i=(int *)func(); // *i==1;
Литералы Числовые литералы int  0x200, 010 unsigned int 512U long 0L unsigned long 0Xf0fUL long long 0777LL unsigned long long  0xAAAllu
Литералы С плавающей запятой 10.0 — значение 10 2.34E5 — значение  2.34 x 10 5 67e-12 — значение  67.0 x 10 -12 float float_val = 10.5f; long double ld_val=0.16l
Литералы Символы 'a' '\x61' Специальные символы: \r, \n, \t, \o, \x, \u Строки «Hello, world!» «Hello, \\world!» «Hello, world!\r\n»
Приведение типов Неявное приведение типов int i=10; long l=i; Явное приведение типов long l=10; int i=(int)l; Используется при приведении указателей char buf[]={1,0,0,0}; int *i=(int *)buf; printf(«Результат: %d\r\n»,*i);
Операторы [ ]  ( )  .  ->  ++  -- (type name){list}  ( -> ) ++  -- !  ~  +  -  *  &  sizeof  ( <- ) (type name) ( <- ) * / %  ( -> ) + -  ( -> ) << >> ( -> ) < <= > >= ( -> ) == != ( -> ) & ( -> ) ^ ( -> )  | ( ->) && ( -> ) || ( -> ) ? : ( <- ) =  +=  -=  *=  /=  %=  &=  ^=  |=  <<=  >>= (<-) , ( -> )
Выражение Выражение заканчивается «;» int i=10; for(;;) выражение; Блоки { Выражение; } for(;;){  ...  }
Циклы while(условие) действие;  while(условие){ Блок действий; } for(инициализация;условие;изменение) действие; for(инициализация;условие;изменение){ Блок действий;  } do{  Блок действий; }while(условие);
Оператор if if(условие) действие; if(условие){ Блок действий; } if(условие) действие1; else действие2; if(условие){ Блок действий 1; }else{ Блок действий 2; }
Оператор выбора switch(переменная) { case значение1: действие1; case значение2: действие2; break; default: действие по умолчанию; }
Операторы break, continue, goto, return Оператор break for(;;){  i++; if(i==5) break; } Оператор continue for(;;){  i++; if(i==5) continue; ... } Оператор goto label1: действие; goto label1; Оператор return return value;
Конец Вопросы e-mail: a.bovanenko@gmail.com

More Related Content

PDF
Step cpp022
PDF
Конкурентные ассоциативные контейнеры
PPTX
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
PPT
01 - Знакомство с Java
PDF
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
PPT
лабораторная работа №2
PPTX
тема 1.введение в pascal
Step cpp022
Конкурентные ассоциативные контейнеры
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
01 - Знакомство с Java
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
лабораторная работа №2
тема 1.введение в pascal

What's hot (18)

PPTX
основы Java переменные, циклы
PPT
Rgsu04
PDF
Введение в синтаксис C++, часть 1
PPTX
C language lect_08_introduction
PDF
4.2 Перегрузка
PDF
2.2 Стек вызовов
PPT
введение в паскаль
PPT
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?
PDF
Python. Обработка ошибок
PPT
19 pascal urok_3
PPTX
C language lect_05_introduction
PDF
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
PDF
Python: ввод и вывод
PPT
Лекция 1 Скорость роста функций
PDF
Discovering Lambdas in Java 8
PPTX
Cpp/cli types
PDF
3.2 Методы
PDF
хитрости выведения типов
основы Java переменные, циклы
Rgsu04
Введение в синтаксис C++, часть 1
C language lect_08_introduction
4.2 Перегрузка
2.2 Стек вызовов
введение в паскаль
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?
Python. Обработка ошибок
19 pascal urok_3
C language lect_05_introduction
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Python: ввод и вывод
Лекция 1 Скорость роста функций
Discovering Lambdas in Java 8
Cpp/cli types
3.2 Методы
хитрости выведения типов
Ad

Viewers also liked (10)

PPTX
Medicaid organization profile
PPTX
Основи мови Ci
PPTX
C programming tutorial for beginners
PPT
Introduction to programming with c,
PPT
C ppt
PPTX
C Programming Language Part 7
PPTX
C Programming Language Part 8
PPTX
C Programming Language Part 6
PPTX
C Programming Language Tutorial for beginners - JavaTpoint
Medicaid organization profile
Основи мови Ci
C programming tutorial for beginners
Introduction to programming with c,
C ppt
C Programming Language Part 7
C Programming Language Part 8
C Programming Language Part 6
C Programming Language Tutorial for beginners - JavaTpoint
Ad

Similar to C language. Introduction (20)

PPT
Rgsu04
PDF
Введение в синтаксис C++, часть 2
PPTX
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
PDF
Step cpp0201
PPTX
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
PPT
Array Work C
PPTX
особенности программирования на с++
PDF
3.8 Класс массива
PDF
6.4 Ещё о шаблонах
PDF
C++ осень 2012 лекция 9
PPTX
Язык программирования C#
PPT
Cреда программирования
PDF
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
PPTX
Testing of Embedded SW – Alternative to Classic TDD
PPT
лабораторная работа №4
PPTX
Хранимые процедуры в NoSQL СУБД на примере Tarantool / Денис Линник (Mail.Ru)
PDF
Как приручить дракона: введение в LLVM
PDF
Tech Talks @NSU: Как приручить дракона: введение в LLVM
PPTX
Algo 00
PDF
6.2 Шаблоны функций
Rgsu04
Введение в синтаксис C++, часть 2
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
Step cpp0201
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Array Work C
особенности программирования на с++
3.8 Класс массива
6.4 Ещё о шаблонах
C++ осень 2012 лекция 9
Язык программирования C#
Cреда программирования
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Testing of Embedded SW – Alternative to Classic TDD
лабораторная работа №4
Хранимые процедуры в NoSQL СУБД на примере Tarantool / Денис Линник (Mail.Ru)
Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Algo 00
6.2 Шаблоны функций

More from Alexey Bovanenko (20)

PDF
Python sqlite3
PDF
Python. re
PDF
python dict
PDF
Python. Строки
PDF
Python. Введение
PPT
PPT
Конвертация строковых данных в числовые
ODP
PPT
Обработка символов в языке C
ODP
PPTX
Javascript functions
PPTX
Javascript String object
PDF
File. Java
ODP
ZIP, GZIP Streams in java
PDF
Конструктор копирования
PDF
Tempale Intro
PDF
transaction. php
PDF
cookie. support by php
PDF
php sessions
ODP
Java IO. Streams
Python sqlite3
Python. re
python dict
Python. Строки
Python. Введение
Конвертация строковых данных в числовые
Обработка символов в языке C
Javascript functions
Javascript String object
File. Java
ZIP, GZIP Streams in java
Конструктор копирования
Tempale Intro
transaction. php
cookie. support by php
php sessions
Java IO. Streams

C language. Introduction

  • 1. Язык программирования C Основы языка baa
  • 2. Введение Стандарт языка C 1999 года (C99) Язык С — процедурный язык Язык С 1970 год AT&T Bell Laboratoies Отличительные особенности языка: Портируемость исходного кода Возможность действий на низком машинном уровне Эффективность
  • 3. Структура программы Составляющая часть программы - функция Функции Стандартные — входят в библиотеки Пользовательские — созданные пользователем Основная функция main int main(){} int main(void){} int main(int argc, char *argv[]){}
  • 4. Исходный код Исходный код программы Определение функций Определение глобальных переменных Декларации препроцессора Код хранится в файлах с расширением «*.c» Пример int i=0; int main(){ printf(«i=%d»,i); return 0; }
  • 5. Исходный код Файлы кода Расширение файла «*.c» Содержит определение функций Например int func1(){ /* Какие-то действия */ Заголовочные файлы Расширение файла «*.h» Содержит декларацию функций Например int func1();
  • 6. Использование заголовочных файлов Файл src1.c void func1(){ printf(«Hello, world»); } Файл src1.h void func1(); Файл src2.c Код в данном файле использует функцию, определенную в файле src1.c #include «src1.h» ... func1(); ...
  • 7. Использование комментариев Блочные комментарии Примеры блочных комментариев /* Это комментарий Это комментарий */ /* Это комментарий */ Однострочные комментарии Примеры однострочных комментариев // Это комментарий // Это комментарий // Это тоже комментарий
  • 8. Идентификаторы Идентификаторы — имена переменных, функций, макросов и структур Символы a-z, A-Z _ 0-9 Не может быть первым символом Первые 31 символ являются значимыми Для функций и глобальных переменных Первые 64 символа являются значимыми Для остальных идентификаторов
  • 9. Области видимости Файловая область Если идентификатор объявлен вне блоков и списков параметров int i=0; void func(){} Блоковая область Идентификатор определен внутри блока кода { int i=0; } Область прототипа функции void func(int i, int j); Область функции void func(){ int i; }
  • 10. Сокрытие переменных int i=1; // используется глобальная переменная int main(){ char i=5; // используется переменная i == 5 ... ... { ... short i=0; // используется i==0 ... } ... // используется i == 5 }
  • 11. Типы данных Целочисленные данные Знаковые типы Типы без знака char unsigned char — 1 байт — 0 .. 255 signed char — 1 байт - -128 ... 127 int - 2/4 байта -32,768 или -2,147,483,648 32,767 или 2,147,483,647 unsigned int - 2/4 байта 0 65,535 or 2,147,483,647 short - 2 байта - -32,768 .. 32,767 unsigned short — 2 байта — 0 .. 65,535
  • 12. Целочисленные типы long - 4 байта - -2,147,483,648 .. 2,147,483,647 unsigned long — 4 байта — 0 .. 4,294,967,295 long long(C99) — 8 байт -9,223,372,036, 854,775,808 9,223,372,036, 854,775,807 unsigned long long (C99) — 8 байт 0 18,446,744,073, 709,551,615 Получение размера переменной size_t sizeof(type)
  • 13. Типы с плавающей запятой float - 4 байта ±3.4E+38 1.2E-38 Точность: 6 знаков double - 8 байт ±1.7E+308 2.3E-308 Точность: 15 знаков long double - 10 байт ±1.1E+4932 3.4E-4932 Точность: 19 знаков
  • 14. Перечисления enum [имя] { список данных }; enum list1 { value1, value2, value3 } Элементы перечисления инициализируются значениями, начиная с 0 Можно задавать значения самостоятельно enum list2 { value1, value2=4, value5, value6=4 }
  • 15. Тип void Функция, которая не возвращает значения, может иметь тип void void func{} Использование указателей: void * Указывает на то, что данные представляют адрес Не указывает на тип данных void * func(){ char buf[]={1,0,0,0}; return buf; } int *i=(int *)func(); // *i==1;
  • 16. Литералы Числовые литералы int 0x200, 010 unsigned int 512U long 0L unsigned long 0Xf0fUL long long 0777LL unsigned long long 0xAAAllu
  • 17. Литералы С плавающей запятой 10.0 — значение 10 2.34E5 — значение 2.34 x 10 5 67e-12 — значение 67.0 x 10 -12 float float_val = 10.5f; long double ld_val=0.16l
  • 18. Литералы Символы 'a' '\x61' Специальные символы: \r, \n, \t, \o, \x, \u Строки «Hello, world!» «Hello, \\world!» «Hello, world!\r\n»
  • 19. Приведение типов Неявное приведение типов int i=10; long l=i; Явное приведение типов long l=10; int i=(int)l; Используется при приведении указателей char buf[]={1,0,0,0}; int *i=(int *)buf; printf(«Результат: %d\r\n»,*i);
  • 20. Операторы [ ] ( ) . -> ++ -- (type name){list} ( -> ) ++ -- ! ~ + - * & sizeof ( <- ) (type name) ( <- ) * / % ( -> ) + - ( -> ) << >> ( -> ) < <= > >= ( -> ) == != ( -> ) & ( -> ) ^ ( -> ) | ( ->) && ( -> ) || ( -> ) ? : ( <- ) = += -= *= /= %= &= ^= |= <<= >>= (<-) , ( -> )
  • 21. Выражение Выражение заканчивается «;» int i=10; for(;;) выражение; Блоки { Выражение; } for(;;){ ... }
  • 22. Циклы while(условие) действие; while(условие){ Блок действий; } for(инициализация;условие;изменение) действие; for(инициализация;условие;изменение){ Блок действий; } do{ Блок действий; }while(условие);
  • 23. Оператор if if(условие) действие; if(условие){ Блок действий; } if(условие) действие1; else действие2; if(условие){ Блок действий 1; }else{ Блок действий 2; }
  • 24. Оператор выбора switch(переменная) { case значение1: действие1; case значение2: действие2; break; default: действие по умолчанию; }
  • 25. Операторы break, continue, goto, return Оператор break for(;;){ i++; if(i==5) break; } Оператор continue for(;;){ i++; if(i==5) continue; ... } Оператор goto label1: действие; goto label1; Оператор return return value;