Data types (signed and unsigned): Numeric (int, short int, long, float, double), Character (char, string), void

Data type तय करता है कि डिब्बे का size क्या होगा और उसमें क्या समाएगा: पूरे numbers के लिए int, decimals के लिए float/double, एक character के लिए char, string यानी char array, void यानी कुछ नहीं, और signed/unsigned negative range के बदले positive पहुँच दुगनी कर देता है।

11 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

3 values, 3 shape के डिब्बे

Marks program बढ़ रहा है और आज उसे 3 चीज़ें रखनी हैं: marks 78, percentage 78.5, और grade 'A'।

तीनों को int डिब्बों में उड़ेलकर देखिए: 78 ठीक-ठीक बैठ जाता है, 78.5 अपना .5 खो देता है, और 'A' ऐसा number बन जाता है जो आपने माँगा ही नहीं था।

डिब्बों की shape होती है। Shape चुनने का काम data type करता है, और गलत चुनना C program के आपसे झूठ बोलने का सबसे ख़ामोश तरीक़ा है।

Theory

डिब्बों का set

रसोई के डिब्बों के set में shapes किसी वजह से होती हैं: rotis के लिए चपटा, दाल के लिए लंबा, इलायची के लिए नन्हा। दाल को roti वाले डिब्बे में डालिए और आधी गिर जाएगी। Data types यही shapes हैं: पूरे numbers के लिए int, decimal वाली values के लिए float/double, एक अकेले character के लिए char। Type डिब्बे का SIZE (bytes में) भी fix करता है, जिससे तय होता है कि कितनी बड़ी value समाएगी।

At a glance

C का type परिवार (आम तौर पर sizes)

TypeBytesक्या रखता हैMarks program में
short int2छोटे पूरे numbersage
int4पूरे numbersmarks = 78
long4/8बड़े पूरे numberscollege का enrolment no.
float4Decimals, ~6-7 digitspercentage = 78.5
double8Decimals, ~15 digitsबारीक averages
char1एक character (ASCII के रूप में)grade = 'A'

Theory

खास वाले: string, void, signed/unsigned

  • string: C का basic type नहीं है। "Riya" जैसा text एक char array है, char डिब्बों की एक क़तार, double quotes में लिखी। पूरी कहानी Unit 3 में; अभी इतना जानिए कि 'A' और "A" अलग क्यों हैं।
  • void: "कोई value नहीं" वाला type, उन functions के लिए जो कुछ नहीं लौटाते। कोई variable void declare नहीं होता।
  • signed / unsigned: signed int में एक bit sign रखता है, बचता है ~±214 करोड़। unsigned int declare कीजिए तो वह bit भी value में जुड़ जाता है: negatives बंद, positive पहुँच दुगनी (~429 करोड़)। ऐसी गिनतियों के लिए perfect जो कभी negative हो ही नहीं सकतीं।

Practical

Marks program, सही types के साथ

#include <stdio.h>

int main() {
    int marks = 78;
    float percentage = 78.5;
    char grade = 'A';
    unsigned int total_students = 60;

    printf("Marks: %d\n", marks);
    printf("Percentage: %f\n", percentage);
    printf("Grade: %c\n", grade);
    return 0;
}

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Quiz

आप int percentage = 78.5; declare करते हैं। डिब्बे में असल में क्या रखा होगा?

  1. 78, decimal वाला हिस्सा कट जाता है
  2. 78.5, C डिब्बा अपने आप adjust कर लेता है
  3. 79, C nearest पूरे number तक round करता है
  4. 0, program value लेने से मना कर देता है
Show the answer

78, decimal वाला हिस्सा कट जाता है

int डिब्बे में decimals के लिए कोई खाना नहीं है, इसलिए C truncate करता है: .5 गिरा दिया जाता है, round नहीं होता, 78.9 भी 78 ही बनता। ज़्यादातर compilers में न error, न warning, बस चुपचाप data का नुक़सान, इसीलिए type का चुनाव मायने रखता है। "Truncation, not rounding" वही phrase है जिस पर exams marks देते हैं।

Think first

char का वह राज़ जो आप पहले से जानते हैं

char डिब्बा 1 byte का है, और bytes numbers रखते हैं। तो 'A' store करने पर डिब्बे में कौन सा number बैठता है? यह आपने BCA103 में पढ़ा है।

Show the answer

65, ASCII code। char असल में character की पोशाक पहने एक छोटा number-डिब्बा है: 'A' में 65, 'a' में 97, '0' में 48 रहता है। इसीलिए grade + 1 C में legal है और 66 ('B') देता है। आपकी BCA103 वाली ASCII table अभी-अभी programming का औज़ार बन गई।

Watch out

Marks कहाँ कटते हैं

string को C का basic data type कहना: वह char array है, और examiners यही जाँचते हैं। Sizes को universal क़ानून की तरह लिखना: वे typical हैं (int "आम तौर पर 4 bytes" होता है, compiler पर निर्भर), यह लिखिए। Quotes की गड़बड़: 'A' char है, "A" 2 bytes की string है (A और एक छिपा end-marker)। और unsigned का मतलब "sign लिखा नहीं" नहीं है: मतलब है उस डिब्बे के लिए negatives नामुमकिन हैं।

Theory

Professional की तरह चुनना

काम का नियम: पूरी गिनतियाँ → int (negatives नामुमकिन हों तो unsigned), पैसे और percentages → float, science-grade बारीकी → double, एक अक्षर/चिह्न → char। Shapes अभी सही कर लीजिए, क्योंकि अगला lesson verbs थमाता है, operators, और 78 / 60 int डिब्बों में float डिब्बों से बहुत अलग बर्ताव करता है।

Summary

Key takeaways

  • Data type डिब्बे का size (bytes) और उसमें समाने वाली values fix करता है।
  • पूरे numbers: short int, int, long; decimals: float (~7 digits), double (~15)।
  • char एक character रखता है, अपने ASCII number के रूप में; 'A' यानी 65।
  • string char array है (double quotes), basic type नहीं; void यानी कोई value नहीं।
  • unsigned negatives की क़ुर्बानी देकर positive range दुगनी करता है।
  • int डिब्बे decimals काट देते हैं: 78.5 बनता है 78, कोई rounding नहीं।
  • याद रखने का hook: डिब्बों का set, सही चीज़ के लिए सही shape।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Introduction to C language

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Data types (signed and unsigned): Numeric (int, short int, long, float, double), Character (char, string), void · Computer Programming and Programming Methodology (CPPM) · Gri-Learn