Язык программирования Си. 글라바(챕터) 3

8847 단어 crussian
1. 비트(비트), 바이트(바이트) или октет(옥텟) и машинное слово(워드)


2. Различие нициализации(초기화) и присваивания(할당), Primер:

int num = 2; //initializing variable num with literal 2
num = 4; //assigning literal 4 to variable num


3. Литералы(Literals), то есть константы(Constants), их суффиксы(Suffixes), для уточнения типа(Type) и их стандартная(Default), то есть десятичная(Decimal) запись и запись в восьмеричном(Octal) или шестнадцатеричном( 16진수) 형식, с префиксами(접두사) 0 è 0x соответственно, 프라이머:

16; //decimal int literal
016; //octal int literal, 14 in decimal
16LL; //decimal long long int literal
0x16ULL; //hexadecimal unsigned long long literal, 22 in decimal
16.0L; //decimal long double literal
.16E-2F; //decimal float literal in scientific notation, 0.0016


4. 형식(포맷) функциями ввода и вывода(입력 및 출력) scanf() è printf() :
  • factические 인수(실제 인수), первым указывается всегда управляющая строка(제어 문자열), пример: "num = %d" ; а потом переmenнnoе количество argumentеntов(가변 길이 인수);
  • вывод непечатаемых символов(비인쇄 문자) управляющими последовательностями(이스케이프 시퀀스), пример: "Have you read the book \"Harry Potter\"\?" ;
  • cпецификаторы и модификаторы преобразования(형식 지정자와 수정자), иначе интерпретации переменных, пример: "%.5f + %hd = %lf" ;
  • 플래그(플래그), 프라임: "%+d" è "%#p" .

  • 예 형식 형식:

    printf("|%-10hd|\n", (short)12);
    printf("|%-+#8.3Lf|\n", 3.6L);
    printf("|%#x|\n", 0x1a);
    printf("|% zd|\n", sizeof(int));
    printf("|%8jX|\n", (long long)0X3CA0F);
    printf("|%5.3ti|\n", ptrtoint2 - ptrtoint1);
    printf("|%-8.5s|\n", "C language");
    printf("|%#*.*o|\n", width, digits, 016);
    printf("|%1$n|\n", &printed_symbols);
    scanf("%*s %d", &num);
    


    5. Baзовые типы данных(기본 데이터 유형):
  • Целочисленные(정수) переменные и их минимальные размеры;
  • Вещественные(실수) числа, состоящие из знакового бита(부호 비트), экспоненты(지수) и мантиссы(가수) или значащей части(중요 값);
  • Переносимые(휴대용) типы в stdint.h , 예시: int32_t , intmax_t , int_least8_t , int_fast16_t ; и mакросы в inttypes.h , 예시: "num = %" PRId32 ;
  • Символьные типы char è unsigned char в ASCII 표(표), также типы _Bool - bool в stdbool.h ; _Complex è _Imaginary - complex è imaginary в complex.h .


  • 6. Ошибки округления данных с плавающей запятой(부동 소수점 반올림 오류), проблема переполнения(오버플로) со значением INF и проблема потери значимости(언더플로), субнормальные(비정상) числа и значение NaN .

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
        printf("%.10f = %.10f\n", 0.3f * 3, .9f); //round-off error
        printf("%.10e\n", 3.402823e38f * 2); //overflow
        printf("%f\n", 500000000.f + 3.0f); //underflow
        printf("%E\n", 1.40129846E-45F / 2); //subnormal number
        printf("%f\n", asin(2.0)); //NaN - not a number
    }
    


    Язык программирования Си 6 издание. Стивен Прата
    C Primer Plus 6th edition. Stephen Prata

    좋은 웹페이지 즐겨찾기