{"id":10308,"date":"2025-07-16T13:03:42","date_gmt":"2025-07-16T11:03:42","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=10308"},"modified":"2025-08-15T14:24:24","modified_gmt":"2025-08-15T12:24:24","slug":"muutujate-deklareerimine-ja-algvaartustamine","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/","title":{"rendered":"Muutujate deklareerimine ja algv\u00e4\u00e4rtustamine"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Muutujate_deklareerimine\" >Muutujate deklareerimine<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Muutujate_algvaartustamine\" >Muutujate algv\u00e4\u00e4rtustamine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Andmetuubid\" >Andmet\u00fc\u00fcbid<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Massiivide_deklareerimine\" >Massiivide deklareerimine<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Massiivide_algvaartustamine\" >Massiivide algv\u00e4\u00e4rtustamine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Massiivi_algvaartustamine_nullideks\" >Massiivi algv\u00e4\u00e4rtustamine nullideks<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Mitme-dimensiooniliste_massiivide_deklareerimine_ja_initsialiseerimine\" >Mitme-dimensiooniliste massiivide deklareerimine ja initsialiseerimine<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Sonede_deklareerimine\" >S\u00f5nede deklareerimine<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Sonede_initsialiseerimine\" >S\u00f5nede initsialiseerimine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Tuhja_sone_initsialiseerimine\" >T\u00fchja s\u00f5ne initsialiseerimine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Sonedest_koosneva_massiivi_deklareerimine\" >S\u00f5nedest koosneva massiivi deklareerimine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/#Sonedest_koosneva_massiivi_initsialiseerimine\" >S\u00f5nedest koosneva massiivi initsialiseerimine<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Muutujate_deklareerimine\"><\/span>Muutujate deklareerimine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C-keeles deklareerime alati muutuja m\u00e4\u00e4rates andmet\u00fc\u00fcp ja muutuja nimi, kasutades s\u00fcntaksit <span class=\"lang:c highlight:0 decode:true crayon-inline\">data_type variable_name;<\/span> .<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    \/\/ Declares an integer variable\r\n    int number;\r\n    \r\n    printf(\"Enter an integer: \");\r\n    scanf(\"%d\", &amp;number);\r\n\r\n    printf(\"You entered %d as integer.\\n\", number);\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Kui sama andmet\u00fc\u00fcbiga muutujaid on rohkem, eraldatakse need komaga <span class=\"lang:c highlight:0 decode:true crayon-inline\">data_type variable_name_1, variable_name_2;<\/span>.\u00a0 Sellisel viisil saab deklareerida suvalise arvu muutujaid, aga mida rohkem on muutujaid, seda raskemini loetavaks kood muutub!<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    \/\/ Declares two real numbers of the same data type\r\n    float firstRealNumber, secondRealNumber;\r\n    \r\n    printf(\"Enter a real number: \");\r\n    scanf(\"%f\", &amp;firstRealNumber);\r\n    \r\n    printf(\"Enter another real number: \");\r\n    scanf(\"%f\", &amp;secondRealNumber);\r\n    \r\n    printf(\"You entered %f and %f as real numbers.\\n\", firstRealNumber,\r\n                                                       secondRealNumber);\r\n    return 0;\r\n}\r\n<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Muutujate_algvaartustamine\"><\/span>Muutujate algv\u00e4\u00e4rtustamine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Iga muutuja v\u00f5ib deklareerimise k\u00e4igus algv\u00e4\u00e4rtustada, omistades sellele v\u00e4\u00e4rtuse vastavalt s\u00fcntaksile <span class=\"lang:c highlight:0 decode:true crayon-inline\">data_type variable_name = initial_value;<\/span> . Vastavalt <a href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/koodimisstiil\/\"><strong>koodimisstiilile<\/strong><\/a> tuleb iga muutuja, millele omistatakse algv\u00e4\u00e4rtus, deklareerida eraldi real. See on oluline eelk\u00f5ige koodi loetavuse seisukohalt.<\/p>\n<pre class=\"toolbar:2 lang:c decode:true \">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    \/\/ Declares and initializes an integer\r\n    int number = 129;\r\n    \r\n    \/\/ Declares and initializes a double\r\n    double realNumber = 25.91;\r\n    \r\n    printf(\"The numbers are: %d and %.2lf\\n\", number, \r\n                                              realNumber);\r\n    return 0;\r\n}\r\n<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Andmetuubid\"><\/span>Andmet\u00fc\u00fcbid<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>C keel j\u00e4tab muutuja andmet\u00fc\u00fcpide deklareerimisel m\u00f5ned asjad lahtiseks. Nimelt m\u00e4\u00e4rab C standard ainult muutuja <strong>minimaalse suuruse<\/strong> baitides ja andmet\u00fc\u00fcpide suuruste vahelise <strong>seose<\/strong>. Seda on oluline meeles pidada, kui andmet\u00fc\u00fcbi suurus esitatakse fikseeritud numbrina &#8211; see ei ole alati korrektne!<\/p>\n<p>J\u00e4rgnevas tabelis on toodud p\u00f5hilisemad andmet\u00fc\u00fcbid ja formaadid. P\u00f5hjalikuma \u00fclevaate saamiseks vaadake <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/C_data_types\">https:\/\/en.wikipedia.org\/wiki\/C_data_types<\/a><\/strong> v\u00f5i <strong>\u00a0<a href=\"https:\/\/www.tutorialspoint.com\/cprogramming\/c_data_types.htm\">https:\/\/www.tutorialspoint.com\/cprogramming\/c_data_types.htm<\/a><\/strong><\/p>\n<table style=\"width: 100%; border-collapse: collapse; border-style: solid; height: 126px;\">\n<caption>\u00a0<\/caption>\n<tbody>\n<tr style=\"height: 18px;\">\n<td style=\"width: 16.6667%; height: 18px;\"><strong>Andmet\u00fc\u00fcp<\/strong><\/td>\n<td style=\"width: 16.6667%; height: 18px;\"><strong>Miinimum suurus (baitides)<\/strong><\/td>\n<td style=\"width: 16.6667%; height: 18px;\"><strong>Kasutusjuht<\/strong><\/td>\n<td style=\"width: 16.6667%; height: 18px;\"><strong>Formaat<\/strong><\/td>\n<td style=\"width: 16.6667%; height: 18px;\"><strong>Kommentaarid<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 18px;\">\n<td style=\"width: 16.6667%; height: 18px;\">char<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">1<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">t\u00e4hem\u00e4rk<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">%c<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">ASCII kodeerimine<\/td>\n<\/tr>\n<tr style=\"height: 18px;\">\n<td style=\"width: 16.6667%; height: 18px;\">char []<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">?<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">s\u00f5ne<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">%s<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">Null-terminaatoriga ASCII-m\u00e4rkidest massiiv<\/td>\n<\/tr>\n<tr style=\"height: 18px;\">\n<td style=\"width: 16.6667%; height: 18px;\">int<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">2<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">v\u00e4iksemad t\u00e4isarvud<\/p>\n<p>&nbsp;<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">%d %i<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">Suurus s\u00f5ltub platvormist<\/td>\n<\/tr>\n<tr style=\"height: 18px;\">\n<td style=\"width: 16.6667%; height: 18px;\">long<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">4<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">Pikemad t\u00e4isarvud<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">%ld %li<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">Suurus s\u00f5ltub platvormist. Soovitatav on selle asemel kasutada <em>bit-width<\/em> t\u00e4isarve<\/td>\n<\/tr>\n<tr style=\"height: 18px;\">\n<td style=\"width: 16.6667%; height: 18px;\">float<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">4<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">reaalarvud, ujukomaarvud<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">%f<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">Madal t\u00e4psus, v\u00e4ltida nt rahaliste v\u00e4\u00e4rtuste puhul jne<\/td>\n<\/tr>\n<tr style=\"height: 18px;\">\n<td style=\"width: 16.6667%; height: 18px;\">double<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">8<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">reaalarvud, kahekordse t\u00e4psusega ujukoma arv<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">%lf<\/td>\n<td style=\"width: 16.6667%; height: 18px;\">Parem t\u00e4psus, kuid siiski ebasobiv, kui n\u00f5utakse suurt t\u00e4psust<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>M\u00e4rkus:<\/strong> minimaalne suurus ja seos on v\u00e4ga m\u00e4rgatav, kui programmeeritakse mikrokontrollereid. Nt tavalisel lauaarvutil, s\u00fclearvutil ja serveril on <span class=\"lang:c highlight:0 decode:true crayon-inline\">int<\/span>\u00a0 4 baiti, aga enamikel Arduino arendusplaatidel on <span class=\"lang:c highlight:0 decode:true crayon-inline\">int<\/span>\u00a0 2 baiti. \u00dchtlasi peab\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">long<\/span>\u00a0 andmet\u00fc\u00fcp olema 2x suurem kui <span class=\"lang:c highlight:0 decode:true crayon-inline\">int<\/span> , seega lauaarvutil on see t\u00f5en\u00e4oliselt 8 baiti, kuid Arduinol 4 baiti. See on omakorda s\u00f5ltuv sellest, millist mikroprotsessorit Arduino mikrokontroller kasutab.<\/p>\n<p><em>Bit-width<\/em> t\u00e4isarvu andmet\u00fc\u00fcpide kasutamiseks tutvu teegiga <span class=\"lang:c highlight:0 decode:true crayon-inline\">inttypes.h<\/span> . Seda k\u00e4sitleme ka Programmeerimine 1 kursusel.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Massiivide_deklareerimine\"><\/span>Massiivide deklareerimine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Massiive deklareeritakse sama s\u00fcntaksi alusel nagu muutujaid, lisades deklaratsiooni soovitud massiivi pikkuse <span class=\"lang:c highlight:0 decode:true crayon-inline\">data_type array_name[array_size];<\/span> . Pikkuse m\u00e4\u00e4ramine on kohustuslik staatiliste massiivide puhul.<\/p>\n<p>Maagiliste numbrite v\u00e4ltimiseks kasutatakse sageli makrot (<span class=\"lang:c highlight:0 decode:true crayon-inline\">#define<\/span> ) v\u00f5i <span class=\"lang:c highlight:0 decode:true crayon-inline \">const<\/span>\u00a0 piiranguga muutujat<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\n#define NUM_CNT 3\r\n\r\nint main(void)\r\n{\r\n    int nums[NUM_CNT];\r\n    \r\n    for (int i = 0; i &lt; NUM_CNT; i++)\r\n    {\r\n        printf(\"Enter number %d: \", i + 1);\r\n        scanf(\"%d\", &amp;nums[i]);\r\n    }\r\n    \r\n    printf(\"Entered nums were: \");\r\n    for (int i = 0; i &lt; NUM_CNT; i++)\r\n    {\r\n        printf(\"%d \", nums[i]);\r\n    }\r\n    printf(\"\\n\");\r\n    return 0;\r\n}<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Massiivide_algvaartustamine\"><\/span>Massiivide algv\u00e4\u00e4rtustamine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Massiive saab algv\u00e4\u00e4rtustada deklaratsiooni k\u00e4igus, m\u00e4\u00e4rates loogeliste sulgude <span class=\"lang:c highlight:0 decode:true crayon-inline\">{ }<\/span>\u00a0 vahel kas k\u00f5ik v\u00e4\u00e4rtused v\u00f5i alamhulga v\u00e4\u00e4rtustest, nt <span class=\"lang:c highlight:0 decode:true crayon-inline\">data_type array_name[array_size] = {val_1, val_2, &#8230;, val_n-1};<\/span> .<\/p>\n<pre class=\"toolbar:2 lang:c decode:true \">#include &lt;stdio.h&gt;\r\n\r\n#define NUM_CNT 3\r\n\r\nint main(void)\r\n{\r\n    int nums[NUM_CNT] = {9, 2, 5};\r\n    \r\n    printf(\"Array contains: \");\r\n    for (int i = 0; i &lt; NUM_CNT; i++)\r\n    {\r\n        printf(\"%d \", nums[i]);\r\n    }\r\n    printf(\"\\n\");\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Massiivi algv\u00e4\u00e4rtustamisel v\u00f5ib massiivi suuruse\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">array_size<\/span> m\u00e4\u00e4ramata j\u00e4tta. Sellisel juhul leiab kompilaator massiivi pikkuse vastavalt algv\u00e4\u00e4rtustatud liikmete arvule.<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    \/\/ Array size omitted, length must be calculated afterwards\r\n    int nums[] = {9, 2, 5};\r\n    int arrayLen = sizeof(nums) \/ sizeof(int);\r\n    \r\n    printf(\"Array contains: \");\r\n    for (int i = 0; i &lt; arrayLen; i++)\r\n    {\r\n        printf(\"%d \", nums[i]);\r\n    }\r\n    printf(\"\\n\");\r\n    return 0;\r\n}<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Massiivi_algvaartustamine_nullideks\"><\/span>Massiivi algv\u00e4\u00e4rtustamine nullideks<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Massiivid v\u00f5ivad olla null-v\u00e4\u00e4rtustatud kasutades s\u00fcntaksit <span class=\"lang:c highlight:0 decode:true crayon-inline\">data_type array_name[array_size] = {0};<\/span>.\u00a0 Sellisel juhul arvesta, et kui massiivi pikkus ei ole m\u00e4\u00e4ratud, siis saab massiivi pikkuseks 1.<\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\n#define NUM_CNT 3\r\n\r\nint main(void)\r\n{\r\n    \/\/ Zero-initialized array\r\n    int nums[NUM_CNT] = {0};\r\n    \r\n    printf(\"Array contains: \");\r\n    for (int i = 0; i &lt; NUM_CNT; i++)\r\n    {\r\n        printf(\"%d \", nums[i]);\r\n    }\r\n    printf(\"\\n\");\r\n    return 0;\r\n}\r\n<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Mitme-dimensiooniliste_massiivide_deklareerimine_ja_initsialiseerimine\"><\/span>Mitme-dimensiooniliste massiivide deklareerimine ja initsialiseerimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>K\u00f5ik massiivi dimensioonid tuleb deklaratsiooni k\u00e4igus spetsifitseerida. 2-dimensioonilise massiivi deklareerimiseks kasutame tavaliselt s\u00fcntaksit <span class=\"lang:c highlight:0 decode:true crayon-inline\">data_type array_name[row_cnt][col_cnt];<\/span>. Ridade ja veergude kasutamine on illustreeriv (m\u00f5tle nt Exceli tabelile), kuid ka v\u00e4ga levinud praktika.<\/p>\n<p>2-D massiivi initsialiseerimisel kasutame pesastatud sulge ridade eristamiseks. V\u00e4\u00e4rtuste joondamine ei ole kohustuslik, kuid on abiks hooldatavuse seisukohalt.<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">int main(void)\r\n{\r\n    int nums[ROW_CNT][COL_CNT] = {{ 5   3,  14, 3,  6},\r\n                                  {14,  3,  -9, 2,  7},\r\n                                  { 9,  1,   9, 2, 51},\r\n                                  {91,  0,   0, 1, 16},\r\n                                  {15, 43, 656, 1, 1}};\r\n    \r\n    printf(\"Array contains:\\n\");\r\n    for (int i = 0; i &lt; ROW_CNT; i++)\r\n    {\r\n        for (int j = 0; j &lt; COL_CNT; j++)\r\n        {\r\n            printf(\"%3d \", nums[i][j]);\r\n        }\r\n        printf(\"\\n\");\r\n    }\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Pane t\u00e4hele, et mitmem\u00f5\u00f5tmelises massiivis v\u00f5ib esimese m\u00f5\u00f5tme (st ridade arvu) \u00e4ra j\u00e4tta, kuid selle peab hiljem v\u00e4lja arvutama, et massiivi itereerida.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Sonede_deklareerimine\"><\/span>S\u00f5nede deklareerimine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C-keeles k\u00e4sitletakse s\u00f5ne null-l\u00f5puga massiividena. Iga massiivi element on ASCII-koodis esindatud m\u00e4rk, mille suurus on 1 bait. S\u00f5nel peab alati olema varuks \u00fcks lisam\u00e4rk null-l\u00f5pu\u00a0jaoks.<\/p>\n<pre class=\"toolbar:2 lang:c decode:true \">#include &lt;stdio.h&gt;\r\n\r\n#define STR_LEN 8\r\n\r\nint main(void)\r\n{\r\n    char word[STR_LEN];\r\n    \r\n    printf(\"Enter a word (up to %d characters): \", STR_LEN - 1);\r\n    scanf(\"%7s\", word);\r\n\r\n    printf(\"You entered: %s\\n\", word);\r\n    return 0;\r\n}<\/pre>\n<p><strong>M\u00e4rkus:<\/strong> Sellist s\u00f5ne lugemise viisi <strong>ei soovitata<\/strong> C-keeles kasutada, aga see on j\u00e4etud illustratsiooniks, et hoida see lihtsa ja l\u00fchikesena. \u00d5igeid s\u00f5ne lugemise viise tutvustatakse vastavas loengus.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Sonede_initsialiseerimine\"><\/span>S\u00f5nede initsialiseerimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>S\u00f5ned initsialiseeritakse tihti s\u00f5ne literaalidena, j\u00e4ttes massiivi pikkuse m\u00e4\u00e4ramata &#8211; nii saab kompilaator tuvastada massiivi pikkuse. S\u00f5ned on alati \u00fcmbritsetud jutum\u00e4rkidega, kuid \u00fcksikud t\u00e4hem\u00e4rgid on \u00fcmbritsetud \u00fclakomadega.<\/p>\n<p>J\u00e4rgmises n\u00e4ites koosneb s\u00f5ne 13 m\u00e4rgist, samas massiiv on deklareeritud 14 baidi pikkuseks, et oleks ruumi l\u00f5pu m\u00e4rgile NUL. V\u00e4ljend null-l\u00f5pp (<em>zero-terminated<\/em>) tuleb sellest, et ASCII s\u00fcmbol NUL omab t\u00e4isarvulist v\u00e4\u00e4rtust 0 (null)<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char hello[] = \"Hello, World!\";\r\n    printf(\"%s\\n\", hello);\r\n    return 0;\r\n}<\/pre>\n<p>Enamik ajast kasutatakse t\u00fchjade kantsulgude asemel muutuja nime ees t\u00e4rni. Sellel on t\u00e4pselt sama m\u00f5ju.<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char *hello = \"Hello, World!\";\r\n    printf(\"%s\\n\", hello);\r\n    return 0;\r\n}<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Tuhja_sone_initsialiseerimine\"><\/span>T\u00fchja s\u00f5ne initsialiseerimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>T\u00fchja s\u00f5ne initsialiseerimisel peame olema kindlad, et s\u00f5ne oleks piisava pikkusega vastavalt planeeritavale kasutusjuhule.<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\n#define STR_LEN 256\r\n\r\nint main(void)\r\n{\r\n    char word[STR_LEN] = \"\";\r\n\r\n    return 0;\r\n}\r\n<\/pre>\n<p><strong>\u00c4RA KASUTA<\/strong> <span class=\"lang:c decode:true crayon-inline\">char *string = &#8220;&#8221;;<\/span>\u00a0 ega <span class=\"lang:c highlight:0 decode:true crayon-inline\">char string[] = &#8220;&#8221;;<\/span>. Kompilaator arvutab massiivi pikkuse initsialiseerimise baasil- need on t\u00fchjad s\u00f5ned, mis sisaldavad ainult s\u00f5ne l\u00f5put\u00e4hist, mille tulemuseks on 1-baidine pikkus ja seet\u00f5ttu ei mahu sinna \u00fchtegi muud m\u00e4rki.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Sonedest_koosneva_massiivi_deklareerimine\"><\/span>S\u00f5nedest koosneva massiivi deklareerimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>S\u00f5nede massiive k\u00e4sitletakse sarnaselt kahem\u00f5\u00f5tmeliste massiividega, kuid s\u00f5ltuvalt deklareerimise viisist v\u00f5ib esineda m\u00f5ningaid erandeid.<\/p>\n<p>Deklaratsioon <span class=\"lang:c decode:true crayon-inline \">char strings[num_of_strings][string_length];<\/span> v\u00f5imaldab luua kindla arvu s\u00f5nesid, mille m\u00e4\u00e4rab esimene pikkus (st \u00a0<span class=\"lang:c highlight:0 decode:true crayon-inline\">num_of_string<\/span> ), kus iga s\u00f5ne saab olla kuni <span class=\"lang:c highlight:0 decode:true crayon-inline \">string_length &#8211; 1<\/span>\u00a0 m\u00e4rgi pikkune. K\u00f5ik s\u00f5ned kasutavad sama palju m\u00e4lu olenemata tegelikust pikkusest.<\/p>\n<p>Sellist t\u00fc\u00fcpi deklaratsioon on ebatavaline ja suuresti ebapraktiline. Rohkem levinud n\u00e4ide on toodud j\u00e4rgmises peat\u00fckis.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Sonedest_koosneva_massiivi_initsialiseerimine\"><\/span>S\u00f5nedest koosneva massiivi initsialiseerimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>S\u00f5nede massiiv deklareeritakse tavaliselt massiivina, mille elemendid on viidad s\u00f5nedele. Selleks kasutatakse j\u00e4rgmist s\u00fcntaksit:<\/p>\n<p><span class=\"lang:c decode:true crayon-inline\">char *strings[] = {&#8220;string1&#8221;, &#8220;string2&#8221;, &#8230;, &#8220;string_n-1&#8221;};<\/span><\/p>\n<p>Selle eeliseks on see, et kompilaator m\u00e4\u00e4rab automaatselt nii massiivi kui ka iga initsialiseeritud s\u00f5ne suuruse. See on ka k\u00e4sureaargumentide struktuur.<\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char *names[] = {\"Tiina\", \"Mari\", \"Toomas\", \"Karl\"};\r\n    int n = sizeof(names) \/ sizeof(char *);\r\n    \r\n    for (int i = 0; i &lt; n; i++)\r\n    {\r\n        printf(\"%s\\n\", names[i]);\r\n    }\r\n    return 0;\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Muutujate deklareerimine C-keeles deklareerime alati muutuja m\u00e4\u00e4rates andmet\u00fc\u00fcp ja muutuja nimi, kasutades s\u00fcntaksit data_type variable_name; . #include &lt;stdio.h&gt; int main(void) { \/\/ Declares an integer variable int number; printf(&#8220;Enter an integer: &#8220;); scanf(&#8220;%d&#8221;, &amp;number); printf(&#8220;You entered %d as integer.\\n&#8221;, number); return 0; } Kui sama andmet\u00fc\u00fcbiga muutujaid on rohkem, eraldatakse need komaga data_type variable_name_1, variable_name_2;.\u00a0 &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/muutujate-deklareerimine-ja-algvaartustamine\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Muutujate deklareerimine ja algv\u00e4\u00e4rtustamine<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":5274,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width-wide.php","meta":{"footnotes":""},"class_list":["post-10308","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/10308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=10308"}],"version-history":[{"count":9,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/10308\/revisions"}],"predecessor-version":[{"id":10383,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/10308\/revisions\/10383"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/5274"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=10308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}