Nolni C: 7 bosqichda qanday tekshirish mumkin (rasmlar bilan)

Mundarija:

Nolni C: 7 bosqichda qanday tekshirish mumkin (rasmlar bilan)
Nolni C: 7 bosqichda qanday tekshirish mumkin (rasmlar bilan)

Video: Nolni C: 7 bosqichda qanday tekshirish mumkin (rasmlar bilan)

Video: Nolni C: 7 bosqichda qanday tekshirish mumkin (rasmlar bilan)
Video: Photoshop Rotate image #shorts #viral #photoshops @Shivam Computer Institute ​ 2024, May
Anonim

C da NULL - bu har doim xotirada mavjud bo'lmagan nuqtaga ishora qiluvchi ramziy doimiy. Garchi ko'pgina dasturchilar uni 0 ga teng deb hisoblashsa -da, bu keyinchalik sizni chalg'itishi mumkin bo'lgan soddalashtirishdir. Ko'rsatkichlaringizni NULLga to'g'ridan -to'g'ri tekshirish va boshqa kontekstlarda 0 dan foydalanish yaxshidir. Bu sizning kodingizni toza va tushunarli ushlab turadi, chunki siz NULL -ni har ko'rganingizda ko'rsatgichlar bilan ishlayotganingizni bilib olasiz.

Qadamlar

2 -qismning 1 -qismi: Nol tekshirishni o'tkazish

C qadamidagi Null -ni tekshiring
C qadamidagi Null -ni tekshiring

Qadam 1. Standart null tekshirish kodidan foydalaning

Null chek yozishning eng aniq usuli quyidagicha. Biz ishlatamiz ptr bu maqolada siz tekshirayotgan ko'rsatgich nomi sifatida.

  • agar (ptr == NULL)

    {

    // kod, agar ko'rsatgich NULL bo'lsa

    } boshqa {

    // kod NULL bo'lmasa

    }

2 -bosqichda Null -ni tekshiring
2 -bosqichda Null -ni tekshiring

Qadam 2. NULLdan boshqa har qanday qiymatni tekshiring

Ba'zida uning o'rniga tengsizlikni tekshirish qulayroq bo'ladi. Bu erda ajablanarli joyi yo'q:

  • agar (ptr! = NULL) {

    // kod NULL bo'lmasa

    }

C qadamidagi Null -ni tekshiring
C qadamidagi Null -ni tekshiring

Qadam 3. Xatolikka yo'l qo'ymaslik uchun avval NULL yozing (ixtiyoriy)

PTR == NULL usulining asosiy kamchiligi tasodifan uning o'rniga ptr = NULL yozib, bu ko'rsatgichga NULL qiymatini belgilash imkoniyatidir. Bu katta bosh og'rig'iga olib kelishi mumkin. Tenglik uchun test operandlarga nosimmetrik munosabatda bo'lgani uchun siz yozish orqali aynan bir xil natijaga erishishingiz mumkin. agar (NULL == ptr) uning o'rniga Bu xatoga chidamli, chunki tasodifan NULL = ptr oddiy kompilyatsiya xatosini yaratadi.

Bu ba'zi dasturchilar uchun biroz noqulay ko'rinadi, lekin bu juda to'g'ri. Qaysi yondashuvni ishlatishingiz shaxsiy imtiyozlarga bog'liq va kompilyatoringiz if (ptr = NULL) xatosini aniqlashda qanchalik yaxshi

C qadamidagi Null -ni tekshiring
C qadamidagi Null -ni tekshiring

4 -qadam. O'zgaruvchining to'g'riligini tekshiring

Oddiy agar (ptr) ptr TRUE ekanligini tekshiradi. Agar ptr NULL bo'lsa yoki ptr 0 bo'lsa, u FALSE qaytaradi. Ko'p hollarda farq muhim emas, lekin shuni bilish kerakki, ular hamma arxitekturada ham bir xil emas.

Buning teskarisi agar (! ptr), agar ptr FALSE bo'lsa, TRUE qaytaradi.

2 -qismning 2 -qismi: xatolardan qochish

C qadam 5 da Null ni tekshiring
C qadam 5 da Null ni tekshiring

Qadam 1. NULLni tekshirishdan oldin ko'rsatgichni o'rnating

Umumiy xatolardan biri, yangi yaratilgan ko'rsatgichning NULL qiymatiga ega ekanligini taxmin qilishdir. Bu haqiqat emas. Belgilanmagan ko'rsatgich hali ham siz ko'rsatgan manzilni ko'rsatmaydi. Bu tasodifan foydasiz manzilni ishlatmasligingizga ishonch hosil qilish uchun yangi yaratilgan yoki bo'shatilgan ko'rsatgichlarni NULL qilib qo'yish odatiy holdir.

  • Bu xatodan qoching:

    char *ptr;

    agar (ptr == NULL)

    {

    // Bu FALSE qaytadi. Ko'rsatkichga to'g'ri qiymat berilgan.

    }

  • Buning o'rniga yozing:

    char *ptr = NULL; // Bu ko'rsatgichni NULL ga tayinlaydi

    agar (ptr == NULL)

    {

    // Agar ko'rsatgich qayta tayinlanmagan bo'lsa, bu "TRUE" ni qaytaradi.

    }

C qadamidagi Null -ni tekshiring
C qadamidagi Null -ni tekshiring

Qadam 2. NULL qaytarilishi mumkin bo'lgan funktsiyalarga e'tibor bering

Agar funktsiya NULL -ni qaytarishi mumkin bo'lsa, bu mumkinmi yoki yo'qmi, bu sizning kodingizda keyinroq muammolarga olib kelishi mumkinmi, deb o'ylab ko'ring. Null tekshiruvi yordamida malloc funktsiyasiga misol (agar (ptr)) faqat haqiqiy qiymatlarga ega ko'rsatgichlarni ishlatishini ta'minlash uchun:

  • int * ptr = malloc (N * sizeof (int));

    agar (ptr) {

    int i;

    uchun (i = 0; i <N; ++ i)

    ptr = i;

    }

C qadamidagi Null -ni tekshiring
C qadamidagi Null -ni tekshiring

3 -qadam. NULL 0 ekanligini tushuning, lekin aniqlik uchun ko'rsatgichlar bilan ishlashda har doim 0 o'rniga NULL dan foydalanish kerak

Tarixiy jihatdan C NULLni 0 raqami (ya'ni 0x00) sifatida ifodalagan. Hozirgi vaqtda u biroz murakkablashishi mumkin va operatsion tizimga qarab farq qiladi. Odatda NULL yordamida tekshirishingiz mumkin ptr == 0, lekin bu muammoga olib kelishi mumkin bo'lgan burchagi holatlar mavjud. Ehtimol, bundan ham muhimi, NULL -dan foydalanish sizning kodingizni o'qiyotgan boshqa odamlar uchun ko'rsatgichlar bilan ishlayotganingizni aniq ko'rsatib beradi.

Maslahatlar

Siz bu chekni xuddi boshqa davralar kabi ishlatishingiz mumkin: vaqt (NULL == ptr) {

Tavsiya: