Видове данни в "C". Програмиране на език C "

Типовете данни в C са клас от данни, чиито стойности имат сходни характеристики. Type определя вътрешното представяне на данните в паметта. Основни типове данни: логически, цяло число, плаваща запетая, низ, указатели.

Типизация

При динамично въвеждане, променливата се свързва с типа в момента на инициализацията. Оказва се, че променливата в различните части на кода може да има различни типове. Динамичното въвеждане се поддържа от Java Script, Python, Ruby, PHP. Статичното типизиране е обратното на динамиката. Когато дадена променлива е декларирана, тя получава тип, който не се променя в бъдеще. C и C ++ езиците са точно това. Този метод е най-удобен за писане на сложен код, а в етапа на компилация са изключени много грешки.


Езиците са неформално разделени на силно типизирани и слабо типизирани. Силното въвеждане предполага, че компилаторът ще генерира грешка, когато очакваните и действителните типове са различни. х = 1 + "2"; //error - можете да добавите пример за лош типичен характер. х = 1 + "2"; //3 Системата за сигурност изпълнява проверки за съвпадение на типа. Грешка при въвеждане се случва например, когато се опитвате да използвате номер като функция. Има нетипизирани езици. За разлика от въвежданите, те ви позволяват да извършвате всякакви операции на всеки обект.

Класове на паметта

Променливите, независимо от техния вид, имат своя обхват и време на съществуване.
Класове на паметта:
  • кола;
  • статично;
  • външно;
  • регистър.
  • Всички променливи в C език запо подразбиране са локални. Те могат да се използват само в рамките на функция или блок. След завършване на функцията, тяхната стойност се унищожава. Статичната променлива също е локална, но извън нейния блок може да има различна стойност, а между функциите повикването се запазва. Външната променлива е глобална. Той е достъпен във всяка част на кода и дори в друг файл. Променливата в регистъра препоръчва на компилатора да съхранява стойностите в RAM. Спецификациите на типовете данни в C не могат да бъдат определени в следните случаи:
  • Всички променливи в блока не са променливи, съответно, ако се предвижда използването на този конкретен клас памет, тогава не се посочва автоматичния спецификатор.
  • Всички функции, обявени извън блок или функция, са по подразбиране глобални, така че външният спецификатор е по избор.
  • Основни типове

    Определя int, char, float и double за спецификация на прости типове. Променливите могат да бъдат заменени с неподписания модификатор, подписан, знак, кратък, дълъг, дълъг.

    По подразбиране всички числа са подписани, съответно, могат да бъдат в диапазона само от положителни числа. За да зададете символна променлива char като знак, подписаният знак е написан. Дълги, дълги и къси показват колко място в паметта се съхранява за съхранение. Най-дълго - дълго, най-малко - кратко. Char е най-малкият тип данни на езика C. За запаметяване на стойности се разпределя само 1 байт памет. Типовете променливи знаци обикновено се присвояват символи, рядко - числа. Символните стойности са в кавички. char a = a "; char b = 2; Тип int съхранява числа, неговиразмерът не е дефиниран отнема до 4 байта памет, в зависимост от архитектурата на компютъра. int a = 12; Изричното преобразуване на неподписана променлива е дадено по следния начин: unsigned int a = 12; Имплицитно изглежда така: int a = 12u; Поплавък и двойно дефиниране на числа с точка. Числата с флоат са представени като -2.3 или 334. Двойната се използва за по-голяма точност - след разделителя на цялата и на дробната част има повече цифри. Този тип отнема повече място за съхранение, отколкото плувка.
    двойно a = 124567; Void има празна стойност. Той дефинира функции, които не връщат нищо. Този спецификатор определя празна стойност в аргументите на метода. Индикаторите, които могат да приемат всякакъв вид данни, също се идентифицират като невалидни.

    Logical Bool

    Използва се за проверка на условия и цикли. Тя има само две значения:
  • истина;
  • лъжа.
  • Булевите стойности могат да бъдат преобразувани в int стойности. True е еквивалентно на едно, false - нула. Преобразуването на типовете се осигурява само между bool и int, в противен случай компилаторът ще генерира грешка. int x = 123; if (x) {//Грешка: "Не може да имплицитно преобразува тип 'int' в 'bool'"}; if (x! = 0) //C # начин {}

    Линии и масиви

    Масивите принадлежат към сложните типове данни в C. MP не работи с низове, точно както Javascript или Ruby. В C всички редове са масиви от символни елементи. Линиите завършват с нулев байт "".

    Съобщения от C линия: char b [] = {'s', t, r, i, n, g и}; Линията се обявява и в сбита форма. char a [] = "низ"; a

    === b

    ; //'t' Целочислени или символни масиви се декларират по същия начин: typeиме на променлива данни [размер на масив]. int a [100]; char b
    ; Подобен синтаксис показва, че размерът на int стойността не може да бъде по-голям от 100 символа. Когато създавате масив, в паметта се съхраняват определен брой клетки за съхраняване на елементи. Следователно, паметта се разпределя динамично за обработка на масиви от данни с неизвестно измерение или за промяна. Многомерните масиви се декларират както следва: int a

    ; При създаването на този масив се разпределя място в този случай за съхраняване на два вложени масива, които се състоят от три елемента. Инициализиране на многомерен масив: int a

    = {123 456}; а

    ; //[1, 2, 3] а
    ; //[4, 5, 6]

    Указатели на връзката

    Указателите са основната характеристика на езика, те предлагат големи възможности за работа с паметта. Те предават информация за местоположението на друга променлива в паметта. Преди употреба те, подобно на други променливи, са декларирани като тип * указател. Тип - тип на променливата, указател - името на показалеца.
    За да укажете указател на стойността на друга променлива, се използват препратки. Те предават адреса на променливата и се използват като безопасен индекс. int a = 2; int * указател; указател = & amp; a; Връзките ви позволяват да работите с указател, както при обект.
    В този случай & amp; a ще върне 0x7340cad2a25c, * указател - 2, но показалеца без "*" - 0x7340cad2a25c. Чрез промяна на стойността, ние не променяме адреса му, така че показалеца ще се отнася и до 0x7340cad2a25c, но ще промени неговото значение. Показалецът към друг указател се декларира във формата int w = 100; int * x = & amp; w; int ** z = & amp; x; Показалецът към масива работи малко по-различно.int c
    = [1, 2, 3, 4, 5], * a; Обявихме масив от цели числа и индекс int a. В този случай показалецът не показва самия масив, а само първия елемент. По този начин, а = с; и a = & c ; //1 са еквивалентни един на друг. Сега можете да се обърнете към третия елемент на масива, използвайки израза * (a + 3) или a
    ; В примера по-горе може да се отбележи, че добавянето на указатели работи по различен начин. Към тях могат да се приложат различни аритметични операции. Показалецът към масива се обозначава по следния начин: char (* pa) ; Но масивът от указатели изглежда така: char * pc ;

    Структури

    Структура - Тип данни в езика С, който улеснява писането и разбирането на програмите, помага за групиране на данни.
    Структурата на масивната проба представлява набор от данни, но нейните елементи могат да бъдат от различен тип и преобразуването се извършва по име, а не по индекс. {type1 променлива name1; тип1 променлива name1; /други членове на данните; } Обявяването на структурната променлива става след затваряне на фигурни скоби. struct book {char title
    ; char author
    ; двоен отлив; } book1 book2 * ptr_bk; Достъпът до полетата се осъществява от оператора "." За да препратите към променливата за заглавието, напишете: book1.title; По този начин, инициализирайте променливата book1.title = "String"; Операторът "->" се използва за позоваване на показалеца. ptr_bk- & gt; или "." оператор. (* (ptr_bk)). Вторият вид списъци с данни е enum (enum). Той съдържа цели числа. enum {червено, синьо, зелено}; В примера се обявява анонимно прехвърляне, съдържащо три члена - червено, синьо, зелено. Преди достъп до елементите, променливата за изброяване се декларира. enum name1 {червено,синьо, червено} ще назовем; В този случай name1 е името на прехвърлянето, а varname е името на променливата. По време на създаването на структура можете да посочите няколко променливи. Те се прехвърлят чрез запетая. enum name1 {червено, синьо, червено} varname1 varname2 varname3; Достъпът до членовете за прехвърляне се дава с помощта на "". varname.red = "червено";

    Заключение

    C езикът предоставя голям набор от типове. Те се формират с помощта на подходящи спецификатори. Основните типове са разделени на числа (двойни, плаващи) и символи (int, char). Модификаторите, подписани и неподписани, показват наличието на знак преди символа. Модификаторите са дълги къси и са отговорни за размера на клетките в паметта за съхраняване на стойностите на променливите. Логическият тип данни има две стойности: true и false. Масивите, структурите са сложни типове данни. Показалецът работи с адреса на променливата, към която се отнася.

    Свързани публикации