Gerçek Veri Tipi C. Kayan nokta tipleri (yüzer, çift ve uzun çift)

Programlamadaki veri türü, iki set kümesidir: çok sayıda değer ve onlara uygulanabilecek birçok değer ve birçok işlem. Örneğin, sonlu bir doğal sayılardan oluşan tamsayı olumsuz sayıların veri türüne göre, ekleme işlemlerini (+), çarpma (*), tamsayı bölümü (/), kalıntı bulma (%) uygulayabilirsiniz. ve çıkarma (-).

Kural olarak programlama dili, programlama dili tarafından temel bir yerleşik birim olarak sağlanan bir dizi ilkel veri türüne sahiptir. C ++ türlerinde, dilin yaratıcısı temel türleri çağırır. C ++ içindeki temel türler dikkate alınır:

  • mantıksal (bool);
  • sembol (örneğin, char);
  • bütün (örneğin, int);
  • kayan nokta (örneğin, şamandıra);
  • transferler (programlayıcı tarafından belirlenir);
  • geçersiz.

Aşağıdaki türler listelenenlerin üstüne yerleştirilmiştir:

  • dizin (örneğin, int *);
  • diziler (örneğin, char);
  • referans (örneğin, çift ve);
  • diğer yapılar.

Edebiyat kavramına dönelim (örneğin, 1, 2.4F, 25E-4, 'a', vb.): Edebi - Sabit bir değeri temsil eden programın kaynak kodunda kayıt. Başka bir deyişle, edebi, program kodundaki herhangi bir türün bir nesnesinin (değerin) gösterimidir. C ++ 'da, tamsayı değerleri, kayan nokta değerleri, sembolik, boolean, string yazmak mümkündür.

Bir bütün türde değişmez yazılabilir:

  • 10. sayı sistemi. Örneğin, 1205;
  • 0 + formatında 8. sayı sistemi. Örneğin, 0142;
  • 0x + formatında 16. sayı sistemi + numaralı. Örneğin, 0x2f.

24, 030, 0x18 - Bunların hepsi aynı numaranın kayıtlarıdır. farklı sistemler Not.
Kayan nokta numaralarını yazmak için nokta boyunca kayıt kullanın: 0.1, .5, 4. -
Üstel kayıt - 25E-100. Böyle bir kayıtta boşluk olmamalıdır.

Etkilgilere kaydedilen değerleri bağlayabileceğimiz isim bir değişken olarak adlandırılır. Değişken, başka bir şekilde kullanılabilecek, adrese erişmek için kullanılabilecek, başka bir şekilde kullanılabilecek bellek alanının adıdır. Bu veriler, program yürütülmesi sırasında belirli bir şekilde belleğe kaydedilir, yeniden yazılır ve silinir. Değişken, verilere istediğiniz zaman erişmenizi ve gerekirse değiştirmenizi sağlar. Değişken ismiyle elde edilebilecek veriler değişken bir değer denir.
Programdaki değişkeni kullanmak için, ilan edilmelidir ve gerekirse tanımlayabilirsiniz (\u003d başlatılmış). Program metninde bir değişkenin duyurusu mutlaka 2 parça içerir: taban tipi ve dedatörü. Tespiti ve başlatıcı isteğe bağlı parçalardır:

Const Int Örnek \u003d 3; // burada Const - spesifikatör // int - temel tip // örnek - değişken adı // \u003d 3 - başlatıcı.

Değişken adı, Latin alfabesinin (küçük harf ve büyük harf), sayıların ve / veya yapışma işaretinin harflerinden bir sembol dizisidir, ancak ilk karakter numarası olamaz. Değişkenin adı seçilmelidir, böylece, örneğin "montement" olduğunu tahmin etmek her zaman kolaydır. Özet ve pratikte, kayıt kuralları için camelcase gösterimini kullanacağız. Değişkenin adı, dilde ayrılmış kelimelerle çakışamaz, bu tür kelimelerin örnekleri: eğer, iken, işlev, gooto, anahtar, vb.

Değişken ismi dışındaki indirenler ek karakterler içerebilir:

  • * - Işaretçi; isimden önce;
  • * Const - sabit işaretçi; isimden önce;
  • & - referans; isimden önce;
  • - dizi; Adından sonra;
  • () - fonksiyon; Adından sonra.

Başlatmacı, duyurudan hemen sonra değişkenin değerini belirlemenizi sağlar. Başlatmacı, eşitlik değişikliği (\u003d) ile başlar ve ardından değişken değerin değerini ayarlama işlemi gerçekleşir. Genel olarak konuşursak, C ++ 'da eşitlik belirtisi, ödevin çalışmasını belirtir; Bununla, değişkenin değerini belirleyebilir ve değiştirebilirsiniz. İçin farklı şekiller Farklı olabilir.

Belirteç, türden başka ek özellikler ayarlar. Örnekte verilen Const Belirticisi, değişkenin sonraki değişim değerini yasaklamanızı sağlar. Bu tür değişken değişkenler sabit veya sabit olarak adlandırılır.

Başlatma olmadan bir sabit ilan etmek mantıksal nedenlerle çalışmayacak:

Const int empty_const; // Hata, sabit değişken const yazısı \u003d 2 başlatılmadı; // 2 Örnek \u003d 3 değerine sahip sabit; // sabit bir değişken değeri atamaya çalışırken hata oluştu

Sabitlerin adlandırılması için, sadece büyük harflerin kullanılması, kelimeleri alt yükseltmenin bir sembolü ile ayıran alışılmıştır.

C ++ 'da ana veri türleri

Her türü görüntüleme, okuyucu veri türünü belirlemeyi unutmamalıdır.

1. Tamsayı tipi (char, kısa (int), int, uzun (int), uzun süredir)

Başlıktan, birçok değerin tamsayılardan oluştuğunu anlamak kolaydır. Ayrıca, listelenen türlerin her birinin birçok değeri bir işaret (imzalanmış) veya imzasız (imzasız) olabilir. Setteki yer alan elemanların sayısı, bu türün değerini kaydetmek için kullanılan hafızanın boyutuna bağlıdır. Örneğin, bir tür char değişkeni için 1 bayt bellek verilir, bu nedenle tüm ürünler:

  • 2 8n \u003d 2 8 * 1 \u003d 256, burada N, değeri saklamak için baytlardaki bellek boyutudur.

Bu durumda, mevcut tamsayıların aralıkları aşağıdaki gibidir:

  • - İmzasız bir karakter için
  • [-128..127] - ikonik karakter için

Varsayılan olarak, bir tamsayı tipinin değişkeni bir işaret olarak kabul edilir. Değişkenin çözülmesi gerektiği kodda belirtmek için, rozetin işareti, solun temel türüne atfedilir, yani. İmzasız:

İmzasız uzun değerler; // bir bütün (uzun) çözülmemiş türü ayarlar.

Listelenen türler yalnızca depolama için gerekli olan bellek boyutlarında farklıdır. C ++ dili oldukça makine bağımlı bir dil standardı olduğundan, yalnızca aşağıdaki durumunu garanti eder:

  • 1 \u003d Boyut Char ≤ Boyut Kısa ≤ Boyut INT ≤ BOYUTU.

Genellikle türlerin boyutları aşağıdaki gibidir: char - 1, kısa - 2, int - 4, uzun -8, uzun - 8 bayt.

Tüm tipin değerleri ile aritmetik işlemler yapılabilir: +, -, *, /,%; Karşılaştırma işlemleri: \u003d\u003d,! \u003d,<=, <, >,\u003e \u003d; Bit işlemleri: &, |, xor,<<, >>.
Toplama, çarpma, çıkarma ve karşılaştırma işlemleri gibi çoğu işlem, anlayışta sorunlara neden olmaz. Bazen, aritmetik işlemleri yaptıktan sonra, sonuç değer aralığının ötesinde olabilir; Bu durumda, program bir hata verecektir.
Bir tamsayı bölümü (/), bir tamsayı bölerek, diğerine bölünmenin bir parçası bulur. Örneğin:

  • 6 / 4 = 1;
  • 2 / 5 = 0;
  • 8 / 2 = 4.

Yüzde sembolü (%), kalıntının iki tamsayıyı bölünmesini belirtir:

  • 6 % 4 = 2;
  • 10 % 3 = 1.

Operasyonu anlamak daha zor - bit: & (s), | (OR), XOR (hariç veya),<< (побитовый сдвиг влево), >\u003e ((sağa bit yöne doğru kaydırın).

Bit işlemleri ve veya XOR her bir bilgiye göre uygun mantıksal işlemi uygular:

  • 1 10 = 01 2
  • 3 10 = 11 2
  • 1 10 & 3 10 = 01 2 & 11 2 = 01 2
  • 1 10 | 3 10 = 01 2 | 11 2 = 11 2
  • 1 10 XOR 3 10 \u003d 01 2 XOR 11 2 \u003d 10 2

Görüntü işlemede, renk için 3 kanal kullanılır: kırmızı, mavi ve yeşil - artı int değişkeninde depolanan şeffaflık, çünkü Her kanalın 0 ila 255 arasında bir dizi var. 16-Irich bir sayı sisteminde, belirli bir değer aşağıdaki gibi yazılmıştır: 0x180013FF; Daha sonra 18 16 değeri, kırmızı kanala, 00 16 - mavi, 13 16 - Yeşil, FF - Alpha kanalı (saydamlık) karşılık gelir. Böyle bir tamsayıdan tahsis etmek kanal denir Kullanılan çok kullanılan İlgilenilen pozisyonların pozisyonlarımızda F 16 veya 1 2 olduğu bir maske. Bunlar. Mavi kanalın değerini vurgulamak için maskeyi kullanmanız gerekir, yani Savaş ve:

İnt blue_channel \u003d 0x180013ff & 0x00ff0000;

Bundan sonra, elde edilen değer gerekli bit sayısına doğru kaydırılır.

Bitwise Shift, işlemin sağ tarafında belirtildiği gibi sayının pek çok ikili boşalması üzerine sola veya sağa kayar. Örneğin, ikili formdaki karakter türü için 39 sayısı, aşağıdaki formda yazılır: 00100111. Sonra:

Char binaryekample \u003d 39; // 00100111 Char Sonuç \u003d BinaryExample<< 2; // сдвигаем 2 бита влево, результат: 10011100

İmzasız türün bir değişkeni ise, sonuç, ikonik için -100 için 156 numaralı olacaktır. İkonik tamsayı türlerinin, bit görünümündeki üst deşarjdaki ünitenin sayı sayısının bir işareti olduğunu unutmayın. Aynı zamanda, ikili formdaki değer, -1'e karşılık gelen tüm birimlerden oluşur; Eğer 1 sadece eski deşarjda ve diğer deşarjlarda - sıfırlar, böyle bir sayı, belirli bir değer türü için minimum bir değere sahiptir: char için -128'dir.

2. Kayan nokta tipi (yüzer, çift (yüzer))

Kayan nokta tipi değerlerinin seti, gerçek sayıların bir alt kümesidir, ancak her gerçek sayı değil, bazen aptalca hatalara yol açan ikili formda gösterilmez:

Şamandıra değeri \u003d 0.2; Değer \u003d\u003d 0.2; // Hata, değer 0,2 olmayacak.

Kayan nokta değişkenleri ile çalışma, programcı eşitlik veya eşitsizlik kontrolünün çalışmasını kullanmamalıdır, bunun yerine genellikle belirli bir aralıkta kontrolleri kullanın:

Değer - 0.2< 1e-6; // ok, подбирать интервал тоже нужно осторожно

Karşılaştırma işlemlerine ek olarak, bir kayan nokta tipi, gerçek sayılarla matematiksel işlemlere tam olarak uygun 4 aritmetik işlemi destekler.

3. Boolean (mantıksal) tipi (BOOL)

Sadece iki değerden oluşur: gerçek (doğru) ve yanlış. Değişkenlerle çalışmak bu tip Mantıksal işlemleri kullanın :! (Değil), \u003d\u003d (eşitlik),! \u003d (Eşitsizlik), && (mantıksal ve), || (mantıksal veya). Her işlemin sonucu uygun gerçek tablosunda bulunabilir. Örneğin:

X y xor.0 0 0 0 1 1 1 0 1 1 1 0

4. Sembol tipi (char, wchar_t)

Char tipi sadece bir tür değil (genellikle, böyle bir tür bayt olarak adlandırılır), aynı zamanda karakter numarasını ASCII sembolü ile tablodan saklayan karakter. Örneğin, kod 0x41 'A' ve 0x71 - 'T' karakterine karşılık gelir.

Bazen, ASCII tablolarında tutulan karakterleri kullanmaya ihtiyaç vardır ve bu nedenle 1'den fazla baytın saklanması gerekir. Onlar için geniş bir sembol (wchar_t) var.

5.1. Dizi

Diziler, aynı tip öğelerin sıralı kümesini saklamanızı sağlar. Dizi, kesin bir blok ile belleğe saklanır, bu nedenle bir dizi boyutunu belirlemeden bildirilemez. Değişken adından sonra bir dizi ilan etmek için, bedenini belirten kare braketleri () yazar. Örneğin:

İnt myarray; // bir tür tipte 5 unsur dizisi

Diziyi başlatmak için, değerler kıvırcık parantez içinde listelenmiştir. Bu şekilde yalnızca değişkenin bildirimi sırasında bu şekilde başlatmak mümkündür. Bu arada, bu durumda, dizinin boyutunu belirtmek gerekli değildir:

İnt oranlar \u003d (1, 3, 7, 9, 11); // Dizi 5. değerler tarafından başlatıldı

Bir dizide (dizi elemanı) belirli bir değerine erişmek için, bir erişim işlemi (), eleman numarasını belirtmek için kullanılır (sayılar 0 ile başlar). Örneğin:

Oranlar; // dizinin ilk elemanına erişim. 1 oranının değerini döndürür; // üçüncü elemana erişim. 7 oranının değerini doğrular \u003d 13; // 5. Dizinin bir elemanı yeni bir oran değeri atamak; // erişim hatası

5.3. Teller

Hattı kaydetmek için, programcılar dizenin sıralı bir sıra (dizi) karakterlerin (dizi) olduğu fikrini kullanır. Dizenin sonunu tanımlamak için, satırın sonunun özel bir satırı kullanın: '\\ 0'. Ters eğik çizgi ve tanımlayıcı sembolden oluşan bu özel karakterler kontrol veya kaçış sembolü denir. Yine de, örneğin, '\\ n' - yeni bir hattın başlangıcı, '\\ t' bir tabalasyondur. Ters eğik çizgi dizgisini kaydetmek için, koruma kullanılır - imzanın kendisi başka bir eğik çizgi koymadan önce: '\\'. Tarama, teklifleri kaydetmek için de kullanılır.

Değişken bir dize oluşturun:

Char textexample \u003d ('t', 'e', \u200b\u200b'S', 't', '\\ 0'); // line "Test" kaydedildi

Basitleştirilmiş bir satır başlatma kaydı var:

Char textexample \u003d "Test"; // Son karakter yazılmamış, ancak boyut hala 5

Ayrıntılara girmeden, başka bir faydalı veri türü - dize veriyoruz. Teller
Bu tür, örneğin katlanabilir:

String hello \u003d "merhaba"; String adı \u003d "max!"; String hello_name \u003d merhaba + isim; // "Merhaba, Max!" Hattı alın.

6. Bağlantı

İnt a \u003d 2; // "a" değişkeni, 2 int ve b \u003d a değerini gösterir; // "B" değişkeni nerede ve "a" b \u003d 4; // B değerini değiştirme, programcı a değerini değiştirir. Şimdi A \u003d 4 INT & C \u003d 4; // hatası, bu yüzden imkansız, çünkü Bağlantı Bir değer atayamazsınız

7. İşaretçi

Bu tür verilerle başa çıkmak için, bu türün birçok değerinin - verilerin başladığı bellek hücrelerinin adresi olduğunu hatırlamanız gerekir. Ayrıca, işaretçi ilave işlemlerini (+), (-) (-) (*) çıkarılmasını (*) destekler.

0x0 adresleri, işaretçinin boş olduğu anlamına gelir, yani Herhangi bir veri belirtmez. Bu adresin kendi değişmezi var - NULL:

İnt * nullptr \u003d null; // boş işaretçi

Bir tamsayı veya başka bir adrese sahip adreslerin eklenmesi ve çıkarılması
Program için kullanılabilir belleğe geçin.

İşaretçinin içinde depolanan adreste başlayarak veri elde etme işlemi Raming (*) olarak adlandırılır. Program, gerekli sayıda bellek hücresini okur ve hafızada depolanan değeri döndürür.

İnt valueImemory \u003d 2; // Intiger Tipi Int * Someptr \u003d // Değişkeninin Değişkenini Kopyalayın Değişkenin adresini kopyalayın, burada ve Someptr değişkeninin adresini döndürür; // bellek hücresinin adresi, örneğin 0x2F * Someptr; // değer 4 hücrede depolanır: 0x2F, 0x30, 0x31 ve 0x32

İşaretçiler için, atama işlemi mevcut değildir, bu da kopyalama işlemiyle ilgili olarak bağdaştırılır. Başka bir deyişle, başka bir işaretçinin adresini veya değişkenin adresini kopyalayabilirsiniz, ancak adresin değerini belirlemek için imkansızdır.

İşaretçinin kendisi, her türlü değişkenin değerlerinin yanı sıra, diğer türlerin değerleri de saklanır ve 4 bayt kaplar, böylece işaretçiye bir işaretçi oluşturabilirsiniz.

8. Tespitler

Tespitler Programcı tarafından belirlenen tek temel tip. Ve büyük ve büyük, liste, sipariş edilen bir adlandırılmış tamsayı sabitleri kümesidir ve liste adı temel tür olacaktır.

Enum rengi (kırmızı, mavi, yeşil);

Varsayılan olarak, red \u003d 0, mavi \u003d 1, yeşil \u003d 2. bu nedenle, değerler birbirleriyle karşılaştırılabilir, yani. Kırmızı< BLUE < GREEN. Программист при объявлении перечисления может самостоятельно задать значения каждой из констант:

Enum erişim (okuma \u003d 1, yaz \u003d 2, exec \u003d 4);

Genellikle, değerleri iklim derecesi olan numaralandırmaları kullanmak uygundur, çünkü İkili temsilde,% 2'lik derecenin sayısı 1. birimden ve sıfırlardan oluşacaktır. Örneğin:

8 10 = 00001000 2

Bu sayıların eklenmesinin sonucu, her zaman hangi numaraların olduğunu açıkça gösterir:

37 10 = 00100101 2 = 00000001 2 + 00000100 2 + 00100000 2 = 1 10 + 4 10 + 32 10

Geçersiz.

Sözdizimi tipi geçersiz, temel türleri belirtir, ancak yalnızca daha karmaşık türlerin bir parçası olarak kullanılabilir, çünkü Void nesneleri yoktur. Kural olarak, bu tür, işlevin geri dönen bir değere sahip olmadığını veya belirsiz tiplerin nesnelerine temel bir işaretçi türüne sahip olmadığını bildirmek için kullanılır:

Void nesnesi; // Hata, Void Void // Hatası gibi nesne yok, boşluk * ptr; // Tamam, bir işaretçiyi bilinmeyen bir türe saklayın

Genellikle, fonksiyonun herhangi bir değer dönmemesi gerçeğine atıfta bulunmak için boşluk kullanacağız. Void göstergesi, programcı bellek bütünlüğü ve doğru tip türü için endişeyi tamamen alırken çalışır.

Oyuncular

Genellikle bir tür değişkenin değerini diğerine getirmek gerekir. Kaynak tipi değerlerinin kümesinin daha büyük bir türün bir alt kümesi olduğu durumlarda (örneğin, Int, uzun ve uzun bir çift) bir alt kümesiydi, derleyici dolaylı olarak dolaylı olarak ( dolaylı olarak.) Değer türünü değiştirin.

İnt tamsayı \u003d 2; Yüzer yüzer \u003d tamsayı; // yüzer \u003d 2.0

Karşı tip tipte bilgi kaybıyla tamamlanacaktır, bu nedenle kayan nokta numarasından sadece bütün bölüm kalır, kesirli kaybolacaktır.

Bunu yapmak için net (açıklık) tip bir dönüşüm var, bunu yapmak, bir değişkenin soluna veya parantez içinde kaynak türünün herhangi bir değeri, yapılacak olan türü yazılır:

İnt değeri \u003d (int) 2.5;

Teknik ve İkili Operasyonlar

Daha önce gerçekleştirdiğimiz operasyonlar ikili olarak adlandırılır: Operasyon sembolünün solunda ve sağında, örneğin, 2 + 3'teki değerler veya değişkenlerdir, örneğin, ikili işlemlere ek olarak, ikili operasyonlara ek olarak, aynı zamanda değişkenlere uygulanır. Her ikisi de değişkenin solunda ve sağında olabilirler, bu tür bu işlemler daha önce bir araya geldi - geçiş işlemi (*) ve değişkenin (&) adresini (&) yakalamayı ünsüzdür. "++" ve "-" operatörleri, tamsayı değişkenin değerini sırasıyla 1 ile artırır ve azaltabilir ve değişkenin sola veya sağına yazılabilir.

C ++ ayrıca, aynı değişkenin ifadesinin sol ve sağ kısımlarında bulunduğunda, yani aynı değişkenin bulunduğu durumlarda kısaltılmış bir ikili işlem kaydı uygular. Herhangi bir işlem değişken değeri ile gerçekleştirilir ve işlemin sonucu aynı değişkene girilir:

A + \u003d 2; // a \u003d a + 2 ile aynı; b / \u003d 5; // B \u003d B / 5 ile aynı; C & \u003d 3; // C \u003d C &3 ile aynı;

Bu scanque record, C ++ programlama dilinin temel veri türleri ve uygulamalarının özellikleri hakkında bilgi sağlar. Ayrıca, kayıt sonunda, bir tablo bu tür değerlerin aralıklarıyla çizilir.

Veri türü kavramı

Herhangi bir programın temel amacı verileri işlemektir. Çeşitli türlerin verileri farklı şekillerde depolanır ve işlenir. Herhangi bir algoritmik dilde, her sabit, değişken, ekspresyon veya işlevin hesaplanmasının sonucu belirli bir türde olmalıdır.

Veri türü belirler:

  • bilgisayarın hafızasında dahili veri sunumu;
  • bu türün değerlerini alabilen birçok değer;
  • bu tenekenin değerlerine uygulanabilecek işlemler ve fonksiyonlar.

Bu özelliklere dayanarak, programcı, gerçek nesneleri temsil etmek için programda kullanılan her değerin türünü seçer. Zorunlu Tip Açıklama Derleyicinin çeşitli program tasarımlarının kabul edilebilirliğini kontrol etmesini sağlar. Büyüklük türünden, makine komutları verileri işlemek için kullanılacaktır.

Her türlü C ++ diline bölünebilir bakım ve bileşik . C ++ dilinde, altı temel Tamsayıların, gerçek, sembolik ve mantıksal değerlerin gösterimi için veri türleri. Bu türlere dayanarak, programcı bir açıklama girebilir. kompozit Türleri. Bunlar arasında diziler, transfer, fonksiyonlar, yapılar, referanslar, işaretçiler, dernekleri ve sınıfları içerir.

C ++ 'da ana veri türleri

Ana (standart) veri türleri genellikle aritmetik olarak adlandırılır, çünkü aritmetik işlemlerde kullanılabiliyorlar. Ana türleri tanımlamak için aşağıdakiler tanımlanır:

  1. int (bütün);
  2. char (sembol);
  3. wchar_t (gelişmiş sembol);
  4. bool (mantıksal);
  5. Şamandıra (gerçek);
  6. Çift (gerçek doğruluk maddesi).

İlk dört teneke tamsayı denir ( tamsayı ), son iki - kayan nokta tipleri . Derleyiciyi, tamsayı değerlerinin işlenmesi için oluşturan kod, kayan nokta değerlerinin kodundan farklıdır.

Dört tane var tip belirteç Dahili temsil ve standart değer çeşitlerini belirleme:

  • kısa (kısa);
  • uzunca);
  • İmzalı (işaret);
  • imzasız.

Bütün Tür (int)

Int tipinin boyutu standart tarafından belirlenmez, ancak bilgisayara ve derleyiciye bağlıdır. Bu tür büyüklüğündeki 16 bitlik bir işlemci için, 32 bit - 4 bayt için 2 bayt verilmiştir.

Tip adının önündeki spor belirteci, işlemcinin deşarjına bakılmaksızın, numaranın 2 bayt alması gereken derleyiciyi gösterir. Uzun belirteci, tüm değerin 4 bayt işgal edeceği anlamına gelir. Böylece, 16 bit bilgisayarda, int ve kısa int eşdeğerleri ve 32 bit - int ve uzun int.

İç görünüm Tüm tipin değerleri, ikili koddaki bir tamsayıdır. İmzalı belirteç'i kullanırken, sayının kıdemesi biti bir işaret olarak yorumlanır (0 pozitif sayı, 1 - negatif). İmzasız özellik, yalnızca pozitif sayıları temsil etmenizi sağlar, çünkü kıdemli tahliye kod kodunun bir parçası olarak kabul edilir. Böylece, Int tipi değerlerin çeşitleri özelliklere bağlıdır. IBM PC uyumlu bilgisayarlar için çeşitli spesifikatörlerle bir bütün tipin değerlerinin değerlerinin aralıkları, kayıt sonunda "basit veri türlerinin aralıkları" nda verilmiştir.

Varsayılan olarak, tüm tamsayı türleri ikonik olarak kabul edilir, yani imzalı belirteç düşürülebilir.

Programda karşılaşılan sabitler, bir veya başka bir tür görüşlerine göre atfedilir. Bu tür bir nedenden dolayı programcıya uymuyorsa, istenen türü Sufifixes L, L (uzun) ve U, U (imzasız) ile açıkça belirtebilir. Örneğin, 32L sabiti bir tür uzunluğa sahip olacak ve 4 bayt işgal edecektir. Sonekleri L ve U'ları aynı anda, örneğin 0x22ul veya 05lu kullanabilirsiniz.

Not

Kısa Kısa Kısa Tipler, Long Int, İmzalı Int ve İmzasız Int, sırasıyla kısa, uzun, imzalanmış ve imzalanmamış olarak kesilebilir.

Sembol tipi (char)

Karakter tipinin boyutunda, bayt miktarı, türü başlığını yönlendiren, bu bilgisayar için karakter kümesinden herhangi bir karaktere uyum sağlamak için yeterlidir. Kural olarak, 1 bayttır. Diğer tüm türler gibi, bir işaret veya hiçbir işaret ile olabilir. İşaret açısından, değerleri -128 ile 127 arasındaki değerleri saklayabilirsiniz. İmzasız değerleri kullanırken, değerler 255'e kadar olabilir. Bu, herhangi bir karakteri 256 karakterli ASCII'den saklamak için yeterlidir. Ayarlamak. Char tipinin değerleri, tam sayıları belirtilen aralıkların sınırlarını aşmamak için de depolamak için kullanılır.

Gelişmiş Sembol Türü (WCHAR_T)

WCHER_T tipi, örneğin Unicode, 1 bayt olarak yeterli olmayan, kodlama için bir dizi karakterle çalışmak üzere tasarlanmıştır. Bu türün boyutu, uygulamaya bağlıdır; Kural olarak, Kısa İpucu'na karşılık gelir. Wchar_t tipinin dize sabitleri, örneğin L »kapıları için L ön eki ile kaydedilir.

Mantık Türü (BOOL)

Mantıksal tipin büyüklükleri, ayrılmış kelimeler yalnızca doğru ve yanlış değerler alabilir. Yanlış - 0 (sıfır) değerinin gösteriminin iç şekli. Başka bir değer doğru olarak yorumlanır. Tüm gerçek türe dönüştürülürken 1'dir.

Kayan nokta tipleri (yüzer, çift ve uzun çift)

C ++ standardı, gerçek değerlerin üç tür veri deposunu tanımlar: şamandıra, çift ve uzun çift.

Kayan nokta veri türleri, bilgisayarın hafızasında tamsayıdan farklı şekilde depolanır. Gerçek sayının iç temsili, iki bölümden oluşur - Mantissa ve Sipariş. IBM PC uyumlu bilgisayarlarda, şamandıra tipinin boyutu 4 bayt, bir ikili deşarj, mantissa işareti, 8 emrin altındaki 8 deşarj ve mantissa altında boşaltılır. Mantissa, 1.0'dan fazla, ancak daha az 2.0. Kıdemli Mantissa hanesi her zaman 1'e eşit olduğundan, depolanmaz.

Çiftlerin türlerinin değerleri için, sırasıyla 8 bayt, 11 ve 52 tahliyesi tahsis edilir. Mantissa'nın uzunluğu, sayının doğruluğunu belirler ve uzunluk uzunluğu aralığıdır. Kayıt sonunda masadan görülebileceği gibi, aynı sayıda bayt ile, yüzer ve uzun int türüne atanan, izin verilen değerlerinin aralıkları büyük ölçüde farklılık gösterir. dahili temsil şekli nedeniyle.

Çift tipli adın önündeki uzun özellikler, 10 baytın büyüklüğü altında verildiğini gösterir.

Kayan nokta sabitleri varsayılan tipte çift vardır. F, F (float) ve L, L (uzun) SFIXES'leri kullanarak sabiti açıkça belirtebilirsiniz. Örneğin, 2E + 6L sabiti uzun bir çift tipe sahip olacak ve 1.82F sabiti şamandıra türüdür.

Çeşitli program platformlarında taşınabilir yazmak için, int tipi boyutu hakkında varsayımlar yapmak mümkün değildir. Bunu elde etmek için, sonucu bayt cinsinden türün boyutu olan Syntoof işlemini kullanmanız gerekir. Örneğin, MS-DOS Size (int) işletim sistemi için sonuç olarak ve Windows 98 veya OS / 2 için sonuç 4 olacaktır.

ANSI standartlarında, temel türler için aralıklar belirtilmemiştir, sadece boyutları arasındaki ilişkiler belirlenir, örneğin:

sizeOF (Float) ≤ Slzeof (Çift) ≤ SizeOF (Uzun Çift)
SizeOF (CHAR) ≤ SLZEOF (KISA) ≤ SENTOF (INT) ≤ SIDOF (uzun)

Not

Tamsayı türleri için minimum ve izin verilen maksimum değerler uygulamaya bağlıdır ve başlık dosyasında gösterilir. (), gerçek türlerin özellikleri - dosyada (), Numeric_limits sınıf şablonunda olduğu gibi

Void türü

Listelenenlere ek olarak, ana dil türü, tüm boşluğu içerir, ancak bu tür değer kümesi boş. Değerleri, işaretçiler için temel bir tür olarak ve Tip Sürücü Çalışması olarak boş bir tür olarak boş bir işlevi belirtmek için değerleri döndürmeyen işlevleri tanımlamak için kullanılır.

IBM PC uyumlu bilgisayarlar için C ++ 'da basit veri türlerinin aralıkları

S: IBM PC uyumlu bilgisayar terimi ne anlama geliyor?
A: IBM PC uyumlu bilgisayar (eng. IBM PC uyumlu) - bilgisayar, mimari olarak IBM PC, XT ve AT. IBM PC uyumlu bilgisayarlar, Intel 8086 ile uyumlu olan mikroişlemciler temelinde inşa edilmiştir (ve bildiğiniz gibi, daha sonra yayınlanan tüm Intel, 8086'dan itibaren tüm geriye dönük uyumluluklara sahiptir). Aslında, neredeyse tüm modern bilgisayarlar.

Veri sunumunun çeşitliliğinde farklılık gösteren farklı tam sayı ve gerçek tipler, bir programcı verecek şekilde, belirli bir donanımın yeteneklerini en etkili şekilde kullanabilme yeteneğini, hesaplamaların hızını ve bellek miktarına bağlıdır. türün seçimi. Ancak, bilgisayarlar için optimize edilmiş program, diğer platformlara aktarılamaz, bu nedenle genel olarak, bağımlılıklar, veri türlerinin belirli özelliklerinden kaçınılmalıdır.

Bir tür Değer aralığı Boyut (bayt)
bool doğru ve yanlış 1
İmzalı char. -128 … 127 1
İmzasız karakter. 0 … 255 1
İmzalı kısa int. -32 768 … 32 767 2
İmzasız kısa int. 0 … 65 535 2
İmzalı uzun int. -2 147 483 648 … 2 147 483 647 4
İmzasız uzun int 0 … 4 294 967 295 4
şamandıra 3.4e-38 ... 3.4e + 38 4
Çift. 1.7E-308 ... 1.7C + 308 8
uzun çift. 3.4E-4932 ... 3.4E + 4932 10

Gerçek tipler için, tablo minimum ve maksimum değerlerin mutlak değerlerini gösterir.

Bu derste öğreneceksiniz alfabe Dili C ++yanı sıra veri tipleri Programı bunun üzerine kaldırabilir. Belki de bu en heyecan verici an değildir, ancak bu bilgi gereklidir! Ek olarak, başka bir dil programlama dilini öğrenmeye başlamış, aynı öğrenme adımı en güvenle geçersiniz. C ++ Dil programı aşağıdaki karakterleri içerebilir:

  • sermaye, küçük harf latin harfleri a, b, c ..., x, y, z ve alt çizgi;
  • arapça sayılar 0'dan 9'a;
  • Özel İşaretler: (), | , () + - /% *. \\ ':?< > = ! & # ~ ; ^
  • alanın sembolleri, sekmeler ve yeni bir dizgiye geçiş.

Program testinde kullanabilirsiniz yorumlar. İki karakterli metin "eğik özellik" // ve yeni bir dizgeye geçiş sembolü ile biterse veya karakterler / * ve * /, derleyici onu görmezden gelir.

C ++ içindeki veriler

Görevi herhangi bir programda çözmek için, herhangi bir veri işlenir. Onlar yapabilir farklı şekiller: Bütün ve gerçek sayılar, semboller, çizgiler, diziler. C ++ içindeki veriler, fonksiyonun başında tanımlamak için gelenekseldir. İçin temel Veri Türleri Dil aittir:

Diğer veri türlerini oluşturmak için, temel ve sözde kullanımı belirtici.C ++, dört veri türünü tanımlar:

  • kısa - kısa;
  • uzunca;
  • İmzalı - işaret;
  • İmzasız - dikkatli olmayan.

Tamsayı tipi

Değişken Tipi int. Bilgisayarda 2 veya 4 bayt işgal edebilir. Bu işlemcinin kanıtlanmasına bağlıdır. Varsayılan olarak, tüm tür türlerinin ikonik olduğu kabul edilir, yani belirteç İmzalandı.belirtemezsiniz. Belirleyici imzasız.yalnızca pozitif sayıları temsil etmenizi sağlar. Aşağıda, tüm türün değerlerinin bazı aralıklarıdır.

Bir tür Aralık Boyut
int. -2147483648…2147483647 4 bayt
imzasız int. 0…4294967295 4 bayt
İmzalı int -2147483648…2147483647 4 bayt
kısa -32768…32767 2 bayt
uzun -2147483648…2147483647 4 bayt
İmzasız kısa int. 0…65535 2 bayt

Gerçek tip

Kayan nokta numarası, M + - P formunda temsil edilir, burada M'nin Mantisse (ondalık basamaklı bir tamsayı veya kesirli sayı), P bir sipariştir (tam sayı). Tipik olarak türün değerleri şamandıra4 bayt işgal ve Çift.8 bayt. Gerçek tip değerlerin masa aralıkları:

şamandıra 3,4e-38 ... 3,4e + 38 4 bayt
Çift. 1,7E-308 ... 1.7E + 308 8 bayt
uzun çift. 3,4E-4932 ... 3,4E + 4932 8 bayt

Mantıksal tip

Değişken Tipi boolsadece iki anlam alabilir doğru (doğru ) veya fasle (yanlış ). Sıfıra eşit olmayan herkes yorumlanır doğru.Değer vermek yanlış Hafızada 0 olarak sunulur.

Void türü

Bu türün birçok değeri boş. Değerleri, işaretçiler için temel bir tür olarak ve Tip Sürücü Çalışması olarak boş bir tür olarak boş bir işlevi belirtmek için değerleri döndürmeyen işlevleri tanımlamak için kullanılır.

Veri türlerinin dönüşümü

C ++ İki tür veri türünü ayırt eder: Açık ve örtük.

  • Örtük dönüşüm otomatik olarak olur. Bu, karşılaştırma sırasında, çeşitli tiplerin ekspresyonunu atama veya hesaplama sırasında yapılır. Örneğin, aşağıdaki program konsoldaki tür türünü gösterecektir. Şamandıra.

#İnclude "stdafx.h" #include Ad alanını kullanma std; İnt ana () () (int i \u003d 5; float f \u003d 10.12; cout<\u003e void "); geri dönüş 0;)

#İnclude "stdafx.h"

#Dahil etmek.

ad alanını kullanma std;

İnt ana ()

int i \u003d 5; Float f \u003d 10.12;

cout<< i / f ;

sistem ("Duraklat \u003e\u003e void");

geri dönüş 0;

En yüksek öncelik, bilgilerin hepsinden daha az kaybolduğu türü alır. Beklenmedik durumların farklı türleri olabileceği için, örtük tipi dönüşümü kötüye kullanmak gerekli değildir.

  • Açık dönüşüm Programcı tarafından dolaylı olarak yapılmamıştır. Böyle bir dönüşüm için birkaç yol vardır:
  1. Stillerde Dönüşüm C.: (Şamandıra) a
  2. Stillerde Dönüşüm C ++.: Şamandıra ()

Ayrıca, aşağıdaki işlemler kullanılarak tür türleri yapılabilir:

static_cast.<> () Const_cast.<> () Reinterpret_cast.<> () Dynamic_cast.<> ()

static_cast.<> ()

const_cast.<> ()

reinterpret_cast.<> ()

dynamic_Cast.<> ()

static_cas.- İlgili veri türlerini dönüştürür. Bu operatör, derleyici otomatik olarak dönüştürmediğinde, gerekli olabilecek normal kurallara yol açar. Sözdizimi şöyle görünecek:

Static_cast yazın.<Тип> (bir obje);

Static_cast'in yardımıyla, değişkenin sabitliğini gidermek imkansızdır, ancak bir sonraki operatöre kuvvetlerdir. const_cast. - Sadece nesnenin sabitliğini kaldırmanız gerektiğinde uygulanır. Sözdizimi şöyle görünecek:

Bir tür Const_cast.< Bir tür> (bir obje);

reinterpret_cast.- Farklı türleri, tamsayıları işaretçiye dönüştürmek için kullanılır ve bunun tersi. Yeni "Pointer" kelimesini gördüyseniz - korkmayın! Bu aynı zamanda bir veri türüdür, ancak yakında onunla birlikte çalışmayacağız. Buradaki sözdizimi, daha önce gözden geçirilen operatörler ile aynıdır:

Bir tür YENİDEN YORUMLAMA._Oyuncular.< Bir tür> (bir obje);

dynamic_Cast. - Tipleri dinamik olarak dönüştürmek için kullanılır, işaretçilerin veya bağlantıların ayarlanmasını uygular. Sözdizimi:

Bir tür Dinamik _Oyuncular.< Bir tür> (bir obje);

Sembolleri Yönetme

Bunlardan bazıları en çok "kontrol karakterleri" ile zaten tanıdıksınız (örneğin, \\ N.). Hepsi ters "eğik çizgi" ile başlayan ve ayrıca çift tırnak ile çerçevelenmiştir.

Resim

Hex kodu

İsim vermek

Bip sesi

Adıma Dön

Sayfa çevirisi (format)

Çizgi çevirisi

İade arabası

Yatay tablolama

Dikey tablolama

Cevap:
  1. Eklenti veri türleri:

kısa int, imzasız kısa int, int, imzasız int, uzun, imzasız.

  1. Yüzer noktalı virgüller veri türleri (gerçek tipe uygun):

Şamandıra, çift, uzun çift.

  1. Sembol veri türü:

char (imzalı char), imzasız char, wchar_t.

  1. Mantıksal Veri Türü:

bool.

  1. Numaralandırılmış veri türü (Visual C ++ 'ye girildi):

sıralama.

2. Tamsayı veri türlerini kullanmanın özellikleri nelerdir?

C ++ 'da, ana tamsayı veri türleri: kısa int, imzasız kısa int, int, imzasız int, uzun int, imzasız uzun (imzasız uzun int).

Bu tür veri, çok sayıda tam sayıdan gelen değerleri temsil eder. Örneğin:

2 -100 398

İmzasız konsoldan başlayan veri türleri sadece pozitif sayılar içerebilir.

Kısa INT, İmzasız Kısa INT verileri, imzasız int.

Veri tipi uzun, imzasız uzun zamandır bellekteki iki kez, imzasız int.

3. Programda, tüm türün X olarak adlandırılan değişkenleri nasıl tarif eder?

Cevap:
int x; // bir işaret ile tamsayı

Sonuç olarak, değişken altında x. 4 baytlık hafızasında bir yer olacak. Değişkene tahsis edilen hafızanın boyutu, bilgisayarın özelliklerine, işletim sisteminin türüne ve derleyici ayarlarına bağlıdır.

4. Bir değişkende bir sayı 239 nasıl kaydedilir?

Bunu yapmak için, '\u003d' sembolü tarafından gösterilen ödev operatörünü kullanın.

Cevap 1. Açıklamasından sonra değişkene bir numara yapmak.

int x; x \u003d 239;

Cevap 2. Açıklaması sırasında değişkene bir numara yapmak (ilk başlatma).

int x \u003d 239;

5. Yüzen noktalı veri türlerinin özellikleri nelerdir?

Yüzer noktalı virgül türleri, değerleri çok sayıda gerçek sayılardan temsil etmesine izin verilir. Örneğin:

8.35 -990.399 239.0.

C ++, aşağıdaki temel kayan nokta veri türlerine sahiptir:

Şamandıra, çift, uzun çift.

Bir değişken tipi çift, bilgisayarın hafızasında 2 kat daha fazla alan, değişken tipi şamandıradır.

Ayrıca, değişken uzun bir çift, bilgisayarın hafızasında 2 kat daha fazla alan bir değişken tipi çift, çift tipte çift bir çift tutar.

6. Kayan nokta değeri olan bir değişkeni nasıl tarif edilir?

Değişkenler tipi şamandıra, çift, uzun çift açıklamanın bir örneği:

float f; Çift d; uzun çift ld;

7. Kayan nokta değişkeninde sayısal değerler nasıl kaydedilir?

Kayan nokta değişken tiplerine sayısal veri yapma örneği:

float f \u003d -9928.45; // Başlatma Başlatma Çift d; uzun çift ld; d \u003d 0.445332; // operatör ataması ld \u003d 3892923898239.030903; // operatör ataması

8. Bir değişken tipi şamandıra türüne nasıl tercüme edilir?

Bunu yapmak için, tür türünün çalışmasını kullanın. Parantez içinde, brifinglerin gerçekleştiği türün adını belirtmeniz gerekir.

yüzer bir; int b; a \u003d 8.457; b \u003d (int) a; // b \u003d 8

Tip sürücü işlemlerini kullanırken, bilgisayarın hafızasında daha az yer kaplayan türlerde üst üste binen sınırlamaları dikkate almanız gerekir.

Örneğin, bir değişken tipi kısa İnt, çift değişken türlerden daha küçük bir sayı aralığını temsil edebilir, çift. Bir sonraki listede, değer değişken türünde kısa bir sürede taşıyor:

kısa int i; float f; f \u003d 3990099.8; i \u003d (int) f; // i \u003d -7597 - taşma

9. Bir değişkenin INT tipinden çift tipte nasıl tercüme edilir?

INT ile iki katlı bir örnek örneği:

int ben; Çift d; i \u003d 982; d \u003d (çift) i; // d \u003d 982.0

10. Programdaki veri tipi char (sembolik veri) kullanımının özellikleri nelerdir?

Char tipi verileri, klavyedeki girilen kodun sembolik değerini temsil eder. Sembol kodu bir tamsayıdır.

Örneğin, 'F' sembolünün kodu 102'nin değerine eşittir.

Sembol kodunun hesaplandığı kod parçası:

İnt kodu; char sembolü; sembol \u003d "f"; kod \u003d (int) sembolü; // Code \u003d 102

Char tipi verileri aynı tamsayılardır. Char tipi veriler bilgisayarın hafızasında 1 bayt işgal eder.

"Sembol kodu" oranı, Windows Symbols tablosuna yerleştirilir. 0 ila 127 arasında kodlu semboller ayrılmış BIOS karakterleridir. En çok tüketilen karakterleri, sayıların karakterlerini, latin alfabesinin sembollerini içerir. Bu karakterler değiştirilemez.

128 ila 255'e kadar kodlu semboller, yüklü olan bu bilgisayarın belirli bir alfabesine bağlı bölgesel sembollerdir. işletim sistemi Pencereler.

11. Veri tipi bool (mantıksal tip) kullanmanın özellikleri nelerdir?

Tip Bool değişkenleri sadece iki değer alabilir:

doğru gerçek,

yanlış - yalan.

Bu değişkenler mantıksal ifadeleri doğrulamak için kullanılır. Sayısal değer 1'e eşittir. Sayısal değer, 0'a eşit yanlıştır.

Belirleyen snippet kodu sayısal değerler Doğru ve yanlış:

İnt sonucu; bool b; sonuç \u003d (int) doğru; // Sonuç \u003d 1 b \u003d false; sonuç \u003d (int) b; // Sonuç \u003d 0

İnt türlerini ve Bool'da şamandıran kod parçası:

int ben; float f; bool b; i \u003d 6; b \u003d (bool) i; // b \u003d true f \u003d 0.0; b \u003d (bool) f; // b \u003d false

12. Bu türün değişkenini alan hafızanın boyutunu nasıl belirlenir?

Bu, SizeOF () işlemini kullanır.

Bazı veri türlerinin boyutunu belirleyen kod fragmanı:

int d; d \u003d SizeOF (char); // d \u003d 1 d \u003d SizeOF (imzasız int); // d \u003d 4 d \u003d SizeOF (şamandıra); // d \u003d 4 d \u003d SizeOF (çift); // d \u003d 8

13. Farklı tipteki değişkenlerin başlatılması nasıl?

int d \u003d 28; zoat z \u003d (şamandıra) 2.85; char c \u003d "k"; String ^ s \u003d "Merhaba!" ; Çift r \u003d -8.559;

14. Belirli bir tür değişkenin izin verilen maksimum izin verilen (minimum izin verilen) değeri nasıl belirlenir?

En çok izin verilen veya minimumları belirlemek için İzin verilen değer kütüphanede bir tür değişken. Net çerçeve. MaxValue ve MinValue özellikleri kullanılır.

Farklı tipteki değişkenlerin sınır değerlerini belirleme örnekleri.

Değişkenler için Int Tipi:

// int. int ben; uzun makas; uzun minnet; Maxint \u003d (uzun) i.maxvalue; // maxint \u003d 2147483647 Minnet \u003d (uzun) i.minvalue; // minint \u003d -2147483648

Değişkenler için kısa int:

// tip kısa int kısa int si; İnt maxint; İnt minnet; Maxint \u003d (int) si.maxvalue; // maxint \u003d 32767 Minnet \u003d (int) si.minvalue; // minint \u003d -32768

İmzasız int değişkenleri için:

// imzasız int imzasız int ui; İmzasız int maxint; imzasız int minnet; Maxint \u003d ui.maxvalue; // maxint \u003d 4294967295 Minint \u003d ui.minvalue; // minint \u003d 0

Değişkenler için şamandıra:

// şamandıra türü. float f; float maxf; Şamandıra minf; Maxf \u003d f.maxvalue; // maxf \u003d 3.402823E + 38 Minf \u003d f.minvalue; // minf \u003d -3.402823e + 38

Değişkenler için çift:

// çift tip Çift d; Çift maxd; Çift zihin; Max \u003d d.maxvalue; // max \u003d 1.79769313486232e + 308 Min \u003d d.minvalue; // min \u003d -1.79769313486232e + 308

Değişkenler için tür char:

// char tipi. char c; İnt maxc; İnt minc; Max \u003d (int) c.maxvalue; // max \u003d 127 Min \u003d (int) c.minvalue; // min \u003d -128

15. Enum türünü kullanmanın özellikleri nelerdir?

Enum Tipi bir veri türüdür. Tüm değerlerin kümeleri için Mnemonic değerlerini tanımlar. Her Mnemonic değerinin belirli bir içeriğe sahiptir ve bir tamsayı gibi görünüyor.

Yılın aylarını belirtmek için enum türünü kullanma örneği:

enum ayları (Ocak, Fabrahar, Mart, Mart, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, reddetti) Mn; mn \u003d ocak; // mn \u003d 0 mn \u003d mart; // mn \u003d 2 mn \u003d Eylül; // mn \u003d 8

Örnek, değişkeni MN Tipi Enum Monhs adıyla açıklanmaktadır. Monsonik ayların değerleri (Ocak, Şubat, ...) 0 (0, 1, 2, ...) ile başlar. Ocak ayının Mnemonic değeri, bir tamsayı değerine karşılık gelir, Şubat ayının Mnemonic değeri 1, 1, vb.

Bu nedenle, enum tipini kullanarak, kaynak kodunun daha iyi netliği için program metninde Mnemonic notasyonu kullanılabilir.

Yazabilirsin ve böylece:

mn \u003d (enum monhs) 2; // mn \u003d mart mn \u003d (enum monhs) 11; // mn \u003d Aralık

16. Tür tipinin özelliklerigeçersiz. programlardaC.++ ?

Geçersiz veri türü aşağıdaki durumlarda kullanılır:

  • herhangi bir değeri döndürmeyen bir işlevi tanımlamanız gerekirse (örneğe bakın);
  • parametre almayan bir işlevi tanımlamanız gerekirse (örneğe bakın).

Misal. MyFun () işlevi, herhangi bir değeri döndürmeyen parametreler olmadan (boşluğu döndürür) ve parametre almaz.

halka açık: Void MyFun (geçersiz) { // vücut fonksiyonu // ... Dönüş; // Değerleri döndürmeyen bir fonksiyondan dönün } // programdan arama işlevi ... Myfun (); ...

17. Bir tür değişkeni ilan etmek mümkün müdürgeçersiz. bir programda mı?

Boşluk türü değerle ilişkili olmadığı için imkansızdır.

Bir değişken tipi boşluğun duyurusu bir mesaj çıkışı ile bir derleme hatasına yol açar:

"Tip Void'in Yasadışı Kullanımı"

18. Tür türünün özellikleri nelerdir?whar._ t. içindeGörsel C.++ ?

Char tipi değişkenleri (önceki öğelere bakınız) 8 bit ASCII -SIMVOL'ları kaydetmek için kullanılır.

WCHAR_T tipi, büyük karakter kümelerinin bir parçası olan karakterleri kaydetmek için kullanılır. Örneğin, Çin alfabesinde çok sayıda karakter var. 8 Deşarj, Çin alfabesi karakterinin tamamını sunmak için yeterli değildir. Bu nedenle, programı uluslararası pazarda kullanmanız gerekirse, WCAR_T'deki türdeki türün yerini almanız önerilir.

Misal Wchar_t tipi kullanımı.

... wchar_t t; // Değişken T'ye Tahsis Edilen 2 Bellek Bayt t \u003d "s"; ...

Son güncelleme: 09/17/2017

Her değişkenin belirli bir türüne sahiptir. Ve bu tür, hangi değerlerin bir değişkene sahip olabileceğini belirler, hangi operasyonlar yapılabilir ve hafızada ne kadar baytta bulunacağını belirler. Aşağıdaki temel veri türleri C ++ 'da tanımlanmıştır:

    bool: Mantıksal tip. Gerçek (gerçek) ve yanlış (yalan) iki değerden birini alabilir. Bu tür için işgal edilen belleğin boyutu kesinlikle tanımlanmamıştır.

    cHAR: ASCII kodlamasında bir karakteri temsil eder. Hafıza 1 bayt (8 bit) alır. Herhangi bir değeri -128 ila 127 arasında veya 0'dan 255 arasında depolayabilir

    İmzalı Char: Bir karakteri temsil eder. Hafıza 1 bayt (8 bit) alır. -128'den 127 arasındaki sınıftan herhangi bir değer kaydedebilir

    İmzasız Char: Bir karakteri temsil eder. Hafıza 1 bayt (8 bit) alır. 0 ila 255 arasındaki değerden herhangi bir değer kaydedebilir

    wchar_t: Genişletilmiş bir sembolü temsil eder. Windows'ta, Linux - 4 bayt (32 bit) hafızada 2 bayt (16 bit) alır. 0 ila 65 535 arasındadır (2 baytta) veya 0 ila 4 294 967 295 (4 bayt için)

    char16_t: Unicode kodlamada bir karakteri temsil eder. Hafıza 2 bayt (16 bit) alır. 0 ila 65 535 arasındaki değeri depolayabilir

    char32_t: Unicode kodlamasında bir karakteri temsil eder. Hafızada 4 bayt (32 bit) alır. 0 - 4 294 967 295 arasındaki değeri depolayabilir

    kısa: -32768 - 32767 arasında bir tamsayı temsil eder. Bellek 2 bayt (16 bit) alır.

    Bu tür aynı zamanda kısa int, imzalı kısa int, kısa imzalı olarak eşanlamlıdır.

    İmzasız Kısa: 0 ila 65535 arasında bir tamsayı sunar. Bellek 2 bayt (16 bit) alır.

    Bu tür aynı zamanda imzasız kısa int için bir eşanlamlıdır.

    İnt: bir tamsayı temsil eder. İşlemci mimarisine bağlı olarak, 2 bayt (16 bit) veya 4 bayt (32 bit) 2 bayt kaplayabilir. Marjinal değerler aralığı, -32768 ila 32767 (2 baytta) veya -2 147 483 648 ila 2 147 483 647 (4 baytta) arasında değişebilir. Ancak, her durumda, boyut, kısa ve azının türünün boyutuna eşit veya daha büyük olmalıdır veya uzunluğa eşittir

    Bu tür, int imzalı eş anlamlılar var ve imzaladı.

    İmzasız Int: Olumlu bir tamsayı temsil eder. İşlemci mimarisine bağlı olarak, 2 bayt (16 bit) veya 4 bayt (32 bit) işgal edebilir (32 bit) ve bu sınır değerlerinden dolayı değişebilir: 0 ila 65535 (2 bayt için) veya 0 ila 4 arasında 294 967 295 (4 bayt için).

    Bu tür bir eşanlam olarak imzasız kullanılabilir

    uzun süre: -2 147 483 648 ila 2 147 483 647 arasında bir tamsayı poz verir. Hafızada 4 bayt (32 bit) alır.

    Bu türde, Long Int, Long Int Long Intn için eşanlamlı ve imzaladı

    İmzasız Uzun: 0 - 4 294 967 295 arasında bir tamsayı gösterir. Hafızada 4 bayt (32 bit) alır.

    ISMIGNAMING UNTING INTT INT.

    uzun zamandır: -923 372 036 854 775 808 ila +9 223 372 036 854 775 807 arasında bir tamsayı sunar. Kural olarak, 8 bayt (64 bit) hafızaya alır.

    Uzun Long Int, uzun uzun int imzaladı ve uzun süre imzaladım.

    uzun zamandır imzasız: 0 - 18 446 744 073 709 551 615 arasında bir tamsayı temsil eder. Bir kural olarak, 8 bayt (64 bit) belleği alır.

    Uzun Long Long Int imzasız eşanlamlı.

    Şamandıra: +/- 3.4E-38 ila 3.4E + 38 arasında değişen bir nokta ile normal bir sayıyı temsil eder. Bellekte 4 bayt (32 bit) kaplar

    double: +/- 1.7E-308 ila 1.7E + 308 arasında değişen bir nokta ile gerçek bir çift doğruluk sayısını temsil eder. Bellekte 8 bayt alır (64 bit)

    uzun iki kat: en az 8 bayt (64 bit) yüzen bir nokta ile gerçek bir çift doğruluk sayısını temsil eder. Belleğin boyutuna bağlı olarak, izin verilen değerler aralığı değişebilir.

    geçersiz: değeri olmayan tip

Böylece, boşluk hariç tüm veri türleri üç gruba ayrılabilir: sembolik (char, wchar_t, char16_t, char32_t), tamsayı (kısa, int, uzun, uzun, uzun) ve kayan nokta numaraları (yüzer, çift, uzun çift).

Sembolik tipler

Uygulamadaki karakterleri görmek için, Char, Wchar_T, Char16_T ve Char32_t türleri kullanılır.

Birkaç değişken tanımlıyoruz:

Char c \u003d "d"; wchar_t d \u003d "c";

Bir değer olarak char tipi değişken bir karakter alır tek tırnak: Char c \u003d "d". Yukarıda tarif edilen aralıktan bir numara atayabilirsiniz: char c \u003d 120. Bu durumda, C değişkeninin değeri, ASCII sembolü tablosunda 120 kodlu karakter olacaktır.

WCHAR_T sembollerinin konsolunun çıktısı için, STD :: COUT ve STD :: WCOUT akışını kullanmak gerekli olmadığı akılda tutulmalıdır:

#Dahil etmek. int main () (char a \u003d "h"; wchar_t b \u003d "e"; std :: wcout<< a << b << "\n"; return 0; }

Aynı zamanda, STD :: WCOut akışı, hem char hem de wchar_t ile çalışabilir. Ve Std :: Wchar_t değişkeni için Cout akımı, sembol yerine sayısal kodunu gösterecektir.

C ++ 11 standardında, Unicode kullanmaya odaklanmış olan Char16_t ve Char32_t türleri eklenir. Ancak, işletim sistemi seviyesinde, akışlar bu türlerle çalışmak için uygulanmaz. Bu nedenle, bu türlerin değerlerini konsola göstermeniz gerekiyorsa, değişkenleri char veya wchar_t türlerine dönüştürmeniz gerekir:

#Dahil etmek. int ana () (char a \u003d "h"; wchar_t b \u003d "e"; char16_t c \u003d "l"; char32_t d \u003d "o"; std :: cout<< a << (char)b << (char)c << (char)d << "\n"; return 0; }

Bu durumda, değişkenlerden önce görüntülendiğinde, Char- (char tipi tipi, B, C ve D değişkenlerinin değerlerinin char tipine dönüştürüldüğü ve konsolda STD kullanılarak gösterilebileceği belirtilir. :: Cout Stream.

Akıllı Tipler

Tamsayı tipleri aşağıdaki türlerle sunulur: kısa, imzasız kısa, int, imzasız int, uzun, imzasız uzun, uzun ve imzalanmamış uzun, uzun zamandır

Kısa bir \u003d -10; İmzasız Kısa B \u003d 10; int c \u003d -30; imzasız int d \u003d 60; Uzun e \u003d -170; imzasız uzun f \u003d 45; Uzun uzun g \u003d 89;

Kayan nokta numaraları türleri

Kayan nokta numaraları türleri Iili fraksiyonel sayılar şamandıra, çift ve uzun çift gibi türlerle temsil edilir:

Bir \u003d -10.45 yüzdürme; Çift b \u003d 0.00105; Uzun çift C \u003d 30.890045;

Veri tipleri

Yukarıdaki listede, her tür için hafızaya girdiği boyut belirtilir. Bununla birlikte, bilgisayar donanım özelliklerine dayanarak, derleyici geliştiricilerin türleri için limit boyutlarının bağımsız olarak seçebileceğini belirtmekte fayda var. Standart, yalnızca asgari değerleri belirler. Örneğin, Int ve Kısa türleri için, asgari değer uzun tip - 32 bit, uzun çift tip için 16 bittir. Aynı zamanda, uzun tipin büyüklüğü, Int tipinin türünden daha az olmamalıdır ve Int Tipi'nin boyutu kısa tipten daha az değildir ve uzun çift tipin boyutu olmalıdır daha çift. Örneğin, Windows altındaki G ++ derleyicisi, 12 bayt kullanır ve Visual Studio'ya gömülü derleyici ve ayrıca uzun iki çift kullanım için Windows altında da çalışır. Yani, aynı platformda bile, farklı derleyiciler bazı veri türlerinin boyutuna farklı şekillerde yaklaşabilir. Ancak genel olarak, veri türlerini tanımlarken bu boyutlar yukarıda kullanılır.

Ancak, belirli bir türün boyutunu tam olarak bilmeniz gerektiğinde durumlar vardır. Ve bunun için, C ++ 'da, değişkenin aldığı bayt olarak bellek boyutunu döndüren bir SizeOF () operatörü vardır:

#Dahil etmek. İnt ana () () (uzun çift sayı \u003d 2; std :: cout<< "sizeof(number) =" << sizeof(number); return 0; }

Konsol Sonuç G ++ 'da derlerken:

sizeOF (sayı) \u003d 12

Aynı zamanda, değişkenleri belirlerken, değişkenin değerinin türü için belirtilen sınırların ötesine geçmemesi gerektiğini anlamak önemlidir. Örneğin:

İmzasız kısa sayı \u003d -65535;

Programı bu dizeyle derlerken G ++ derleyici, -65535 değerinin, imzasız kısa bir tür için geçerli değerler aralığına dahil edilmediği ve kesildiğine dair bir hata verecektir.

Visual Studio'da, derleme hatasız geçebilir, ancak değişken numarası, -65535 sayısının imzasız kısa tipine dönüşümünün bir sonucu 2'nin bir değeri alır. Yani, yine, sonuç tam olarak beklenen kişi olmayacak. Değişkenin değeri, belirli bir türe uygun olarak yorumlanan hafızadaki sadece bir bit kümesidir. Ve farklı türlerde, aynı bit seti farklı şekillerde yorumlanabilir. Bu nedenle, değişken bir değer atarken bir veya başka bir için değer aralıklarını dikkate almak önemlidir.

Otomatik özellik

Bazen ifade türünü belirlemek zordur. Ve en son standartlara göre, nesnenin türünü görüntülemek için bir derleyici sağlayabilirsiniz. Ve bunun için otomatik özellikleri uygular. Bu durumda, Otomatik özellikli değişkeni belirlersek, bu değişken herhangi bir değerle başlatılmalıdır:

Otomatik numara \u003d 5;

Atanan değerine dayanarak, derleyici değişken türünü görüntüler. Otomatik özellikli başlatılmamış değişkenlere izin verilmez.

Konuya devam ediyor:
Akıllı telefon

Minitool Güç Veri Kurtarma Serbest Sürümü, verileri kurtarmak için tasarlanmış kullanımı kolay bir programdır. Minitool Güç Veri Kurtarma ile çalışmak için ...