{"id":2550,"date":"2010-03-19T15:25:43","date_gmt":"2010-03-19T14:25:43","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=2550"},"modified":"2010-03-19T15:25:43","modified_gmt":"2010-03-19T14:25:43","slug":"c003-tipi-di-dato-atomico-e-strutturato","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/c003-tipi-di-dato-atomico-e-strutturato\/","title":{"rendered":"C#003 &#8211; Tipi di dato (atomico e strutturato)"},"content":{"rendered":"<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/ccpp.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/ccpp.png\" alt=\"C\/C++\" title=\"ccpp\" width=\"200\" height=\"100\" class=\"alignleft size-full wp-image-2377\" \/><\/a> Benvenuti in questo terzo appuntamento con il C++! In questa pagina affronteremo un discorso molto importate: il concetto di tipo. Si dice che il C\/C++ siano linguaggi fortemente tipizzati, questo in quanto, tale concetto, assume un&#8217;importanza estrema in qualsiasi istruzione che compone un qualsiasi programma scritto in C\/C++.<!--more--><\/p>\n<p>Il <em>tipo<\/em> \u00e8 per definizione l&#8217;insieme di tutti i valori che una data variabile di quel tipo pu\u00f2 assumere. Diremo che la variabile \u00e8 un&#8217;istanza del tipo.<\/p>\n<p>Vediamo un primo esempio:<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\nint a; \r\n<\/pre>\n<p>Con questa semplice istruzione non facciamo altro che allocare, ovvero dedicare dello spazio in memoria, (quanto lo vedremo dopo) ad una variabile di nome <em>a<\/em> di tipo <em>int<\/em>.<\/p>\n<p>Distinzione molto importante \u00e8 quella tra <strong>Tipo Atomico<\/strong> e <strong>Tipo Strutturato<\/strong>.<\/p>\n<h4>Tipo Atomico<\/h4>\n<p>Un tipo si definisce <strong>Atomico<\/strong> se \u00e8 messo a disposizione del programmatore, gi\u00e0 dal linguaggio stesso ed inoltre se non pu\u00f2 essere decomposto in altri tipi pi\u00f9 semplici.<br \/>\nEsempio di Tipo Atomico \u00e8 proprio l&#8217; int menzionato poco fa nell&#8217;esempio precedente.<br \/>\nL&#8217;int, pur variando nell&#8217;intervallo di rappresentazione a seconda del tipo di IDE usato, va ad allocare un determinato numero intero di bit per contenere un numero in un range specifico, ovvero tra un valore minimo e un valore massimo. Generalmente l&#8217;intervallo di rappresentazione va da -32.767 a 32.767.<\/p>\n<h4>Tipo Strutturato<\/h4>\n<p>Un tipo <strong>strutturato<\/strong> \u00e8 invece un tipo che viene espressamente dichiarato da un programmatore, che pu\u00f2 plasmarlo per le sue esigenze come meglio crede.<br \/>\nLa sintassi per definire un tipo ed assegnargli un nome \u00e8 la seguente:<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\ntypedef [NOME TIPO ATOMICO] [NOME TIPO STRUTTURATO];\r\n<\/pre>\n<p>Un esempio, per la costruzione di una stringa di 256 caratteri \u00e8 il seguente;<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\ntypedef char stringa[256];\r\n<\/pre>\n<p>Dopo questa istruzione, il tipo stringa sar\u00e0 assunto come un tipo definito e potremo quindi istanziare delle stringhe per contenere caratteri.<\/p>\n<p>esempio:<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\nstringa nome; \/\/allocazione di una stringa per contenere una qualsiasi frase di massimo 256 caratteri.\r\n<\/pre>\n<p>Concludo questo piccolo articolo sui tipi di dati ricordando i principali Tipi Atomici disponibili:<\/p>\n<p><center><\/p>\n<table>\n<tr>\n<td>char<\/td>\n<td>Carattere<\/td>\n<td>8bit<\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td>Num Intero<\/td>\n<td>16bit<\/td>\n<\/tr>\n<tr>\n<td>short<\/td>\n<td>Num Intero<\/td>\n<td>16bit<\/td>\n<\/tr>\n<tr>\n<td>long<\/td>\n<td>Num Intero<\/td>\n<td>32bit<\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td>Num Reale<\/td>\n<td>32bit<\/td>\n<\/tr>\n<tr>\n<td>double<\/td>\n<td>Num Reale<\/td>\n<td>64bit<\/td>\n<\/tr>\n<\/table>\n<p><\/center><\/p>\n<p>Come potete vedere dalla tabella qui sopra, <em>int<\/em> e <em>short<\/em> sono equivalenti per il Dev-C++, tuttavia, non essendo sempre valida ques&#8217;eguaglianza, se non si ha la necessit\u00e0 di contenere numeri oltre il 32.767 \u00e8 consigliabile usare il tipo short.<\/p>\n<p>Per ora \u00e8 tutto, con il prossimo articolo vedremo come creare una semplice calcolatrice in C++.<\/p>\n<p>Alla prossima<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Benvenuti in questo terzo appuntamento con il C++! In questa pagina affronteremo un discorso molto importate: il&#8230;<\/p>\n","protected":false},"author":156,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[127],"tags":[68,143,17,144,145],"class_list":["post-2550","post","type-post","status-publish","format-standard","hentry","category-pillole-di-cpp","tag-c","tag-cpp","tag-teoria","tag-tipi","tag-tipi-di-dato"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/156"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=2550"}],"version-history":[{"count":9,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2550\/revisions"}],"predecessor-version":[{"id":2557,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2550\/revisions\/2557"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=2550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=2550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=2550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}