Oletko koskaan miettinyt, mitä vakiot ovat ja miksi ne ovat tärkeä osa ohjelmoinnin maailmaa? Meillä on kaikki vastaukset kysymyksiisi. C- ja C++-ohjelmoinnissa vakiot eivät ole mitään muuta kuin kiinteitä arvoja, joita ei voi muuttaa koko ohjelman suorituksen aikana. Näitä kiinteitä arvoja kutsutaan myös literaaleiksi.

Maallikon kielellä voimme käyttää termejä vakiot ja literaalit vaihdellen. Korostamme kuitenkin tässä opetusohjelmassa näiden kahden keskeistä eroa.

Ennen kuin aloitamme, sinun on oltava tietoinen muuttujista C:ssä

Tunnustetaan nyt vakioiden ja litteraalien merkitys C:ssä ja C++:ssa tarkastelemalla seuraavaa ongelmaa:

On olemassa tiettyjä tilanteita, joissa muuttujat eivät muuta arvoaan, sanokaamme esimerkiksi, että pi:n arvo, joka on suurin piirtein yhtä suuri kuin 3,14159 on vakio eikä se voi koskaan muuttua, mikä on yleismaailmallinen seikka. Saatamme törmätä useisiin tilanteisiin, joissa tarvitsemme piitä matemaattisissa laskutoimituksissa. Vastaavasti voimme antaa useille muuttujille vakioarvoja mukavuutemme mukaan.

Pysy ajan tasalla uusimmista teknologiatrendeistä
Join DataFlair on Telegram!!

Muuttujat ja vakiot C:ssä ja C++:ssa

On tärkeää huomata, että muuttujalla on eri merkitys ohjelmoinnissa ja matematiikassa. Muuttuja ei ole mitään muuta kuin arvo, jonka voimme tallentaa tietokoneen muistiin. Voimme helposti muuttaa sen arvoa ajon aikana. Sen sijaan vakiot eivät koskaan muuta arvoaan ohjelman suorituksen aikana. Vakiot voivat pitää sisällään mitä tahansa C:ssä ja C++:ssa käytettävissä olevia tietotyyppejä.

Konstanttien ilmoittaminen tai määrittely

Voimme antaa C/C++-vakiolle arvon muuttujalle kahdella tavalla:

  1. Käyttämällä #defineä, joka on esikäsittelijän direktiivi: Olemme jo käsitelleet #define:tä yksityiskohtaisesti esiprosessoreissa.
  2. Käyttämällä avainsanaa const: Se on samanlainen kuin muuttujien ilmoittaminen, paitsi että meidän on lisättävä avainsana ”const” ennen sitä. On tärkeää antaa vakiolle arvo heti, kun julistamme sen.

Opi lisää esiprosessoreista C:ssä, tule tietoiseksi siitä, että kannattaako se vai ei?

2.1 Konstanttien ilmoittaminen tai määrittäminen C:ssä

Tässä on C-kielinen ohjelma, joka havainnollistaa, mitä tapahtuu, kun yritämme muuttaa vakion arvoa:

#include<stdio.h>int main(){printf("Welcome to DataFlair tutorials!\n\n");const float pi = 3.14;const float e = 2.71;pi = 3.14159;printf("The value of pi is: %f", pi);return 0;}

Output-

muuta vakion arvoa C:ssä

2.1 Konstanttien ilmoittaminen tai määrittely C++:ssa

Sama ongelma syntyy, kun yritämme muuttaa vakion arvoa:

#include <iostream>using namespace std;int main(){cout<<"Welcome to DataFlair tutorials!"<<endl<<endl;const float pi = 3.14;const float e = 2.71;pi = 3.14159;cout<<"The value of pi is: "<< pi <<endl;return 0;}

Error-

Declare or Define Constants in C++

Constantit vs. literaalit C:ssä/C++:ssa

Kuten aiemmin käsiteltiin, vakioita ja literaaleja saatetaan käyttää toistensa kanssa vaihdettavina, mutta näiden kahden välillä on pieni ero.

Katsotaanpa yksinkertaista esimerkkiä, jotta asia ymmärretään paremmin.

Intiassa laillinen äänestysikä on 18 vuotta.

Sen vuoksi määrittelemme,

const voting_age = 18;

Tässä 18 on literaali, arvo, joka ilmaistaan omana itsenään, kun taas vakio voidaan katsoa tietotyypiksi, joka korvataan literaalin tilalle koodin toiminnallisuuden lisäämiseksi.

Nyt haluaisimme tulostaa viestin ” Sinulla on oikeus äänestää ! ” henkilöille, joiden ikä on vähintään 18 vuotta.

Tässä on koodinpätkä C-kielellä yllä olevan lausekkeen mukaisesti.

if (age >= voting_age)
{
printf(” You are allowed to vote! ”);
}

Tässä tunniste voting_age on vakio.

Tässä on koodinpätkä C++-kielellä yllä olevan lausekkeen mukaisesti.

if (age >= voting_age)
{
cout<<” Sinulla on oikeus äänestää! ” <<endl;
}

Tässä tapauksessa tunniste voting_age on vakio.

Konstanttien tyypit C:ssä ja C++:ssa

C:ssä ja C++:ssa on 5 erilaista vakiotyyppiä riippuen niiden datatyypistä:

Konstanttien tyypit C:ssä ja C:ssä

4.1 Kokonaislukuvakio

Kuten nimikin kertoo, kokonaislukuvakio on kokonaisluku, jolla on kiinteä arvo, eli sillä ei voi olla murtolukua kuten 10, -8, 2019.

Esimerkiksi,

const signed int limit = 20;

Voidaan käyttää erilaisia U- ja L-suffiksien yhdistelmiä merkitsemään merkitsemättömiä (unsigned) ja pitkiä (long) modifikaattoreita, pitäen mielessä, että sen toistoa ei esiinny.

Voidaan edelleen luokitella kolmeen tyyppiin, nimittäin:

  • Desimaalilukujärjestelmän vakio: Sen perus-/radix on 10. ( 0-9)
    Esimerkiksi 55, -20, 1.
    Desimaalilukujärjestelmässä ei käytetä etuliitettä.
  • Oktal-lukujärjestelmän vakio: Sen pohja/radix on 8. ( 0-7 )
    Esimerkiksi 034, 087, 011.
    Ottaalilukusysteemissä käytetään 0:ta etuliitteenä.
  • Heksadesimaalilukusysteemin vakio: Sen pohja/radix on 16. (0-9, A-F)
    Heksadesimaalilukujärjestelmässä käytetään etuliitteenä 0x. C-kieli antaa mahdollisuuden käyttää joko isoja tai pieniä kirjaimia heksadesimaalilukujen esittämiseen.

4.2 Liukuluku- tai reaalikonstantit

Käytämme liukulukuvakiota kaikkien reaalilukujen esittämiseen lukusuoralla, johon sisältyvät kaikki murtoluvut.

Esimerkiksi,

const long float pi = 3.14159;

Voitamme esittää sen kahdella tavalla:

  • desimaalimuodossa: Desimaalipisteen ( . ) lisääminen on pakollista.
    Esimerkiksi 2,0, 5,98, -7,23.
  • Eksponentiaalimuoto: Merkitty eksponentti (joko e tai E) on pakollinen.
    Yleismaailmallinen gravitaatiovakio G = 6.67 x 10-11 esitetään esimerkiksi muodossa 6.67e-11 tai 6.67E-11.

4.3 Merkkikonstantit

Merkkikonstantteja käytetään osoittamaan kiinteä arvo merkeille, mukaan luettuna aakkoset ja numerot, tai merkkien sisältämille erikoissymboleille, jotka on suljettu yksinkertaisten lainausmerkkien sisälle. ( ’ ” ’ ).

Jokaiseen merkkiin liittyy tietty numeerinen arvo, jota kutsutaan ASCII-arvoksi (American Standard Code For Information Interchange).

Tämän arvon lisäksi C:ssä on joukko, joka tunnetaan nimellä Escape Sequences

Esimerkiksi ’+’, ’A’, ’d’.

4.4 Merkkijonovakiot

Merkkijonovakio on merkkijono, jolla on kiinteä arvo, joka on suljettu kaksinkertaisten lainausmerkkien ( ” ” ) sisään.

Esimerkiksi ”DataFlair”, ”Hello world!”

4.5 Enumerointikonstantit

Enumerointikonstantit ovat C:ssä käyttäjän määrittelemiä datatyyppejä, joilla on kiinteä arvo ja joita käytetään nimien antamiseen integraalivakioille.

Esimerkiksi,

enum sateenkaari = { Violetti, Indigo, Sininen, Vihreä, Keltainen, Oranssi, Punainen }

Enumerointikonstantilla sateenkaari on integraaliset arvot seuraavasti:

Violetti : 0
Indigo: 1
Sininen: 2
Vihreä : 3
Keltainen: 4
Oranssi: 5
Punainen: 6

Miten käyttää vakiota C:ssä?

Tässä on C-koodia, joka havainnollistaa joidenkin vakioiden käyttöä:

#include<stdio.h>int main(){printf("Welcome to DataFlair tutorials!\n\n");const int value = 4;const float marks = 98.98;const char grade = 'A';const char name = "DataFlair";printf("The constant int value is: %d\n",value);printf("The constant floating-point marks is: %f\n", marks);printf("The constant character grade is: %c\n", grade);printf("The constant string name is: %s\n",name);return 0;}

Koodi ruudulla-

Esimerkki vakioista C:ssä

Tulos-

Käyttäkää vakioita

Kuinka käytetään vakiota C++:ssa?

Tässä on C++-koodia, joka havainnollistaa joidenkin vakioiden käyttöä:

#include <iostream>using namespace std;int main(){cout<<"Welcome to DataFlair tutorials!"<<endl<<endl;const int value = 4;const float marks = 98.98;const char grade = 'A';const char name = "DataFlair";cout<<"The constant int value is: "<< value <<endl;cout<<"The constant floating-point marks is: "<< marks <<endl;cout<<"The constant character grade is: "<< grade <<endl;cout<<"The constant string name is: "<< name <<endl;return 0;}

Koodi-

Vakion käyttö C++:ssa

Tulos-

Vakion käyttö C++:ssa

Yhteenveto

Tässä opetusohjelmassa käsiteltiin C:ssä ja C++:ssa esiintyvien vakioiden ja muuttujien eroa. Sitten jatkoimme keskustelua valottamalla yksityiskohtaisesti sitä, miten vakiot tai litteraalit ilmoitetaan tai määritellään ja minkä tyyppisiä vakioita C:ssä on käytettävissä. Kun olet suorittanut tämän opetusohjelman, hallitset C/C++:n vakiot ja litteraalit.

Älkää unohtako tarkistaa C-kielen unionit

.

Vastaa

Sähköpostiosoitettasi ei julkaista.