T bir tür olmak üzere
1 |
sizeof(T) |
ifadesi ile aynı değeri üretecek sizeof işlecini (operatörünü) kullanmayan bir ifade oluşturun: Oluşturduğunuz ifadenin türü size_t olmalı Oluşturduğunuz
C/C++ Eğitim
T bir tür olmak üzere
1 |
sizeof(T) |
ifadesi ile aynı değeri üretecek sizeof işlecini (operatörünü) kullanmayan bir ifade oluşturun: Oluşturduğunuz ifadenin türü size_t olmalı Oluşturduğunuz
Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <stdio.h> int main() { int x = 3; int y = 5; int z = x + sizeof(++x) - sizeof(++y); printf("%d\n", x + y + z); return 0; } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı hatası) Tanımsız davranış.
Aşağıdaki program neden a dizisinin tüm öğelerini standart çıkış akımına yazdırmıyor?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include<stdio.h> #define asize(a) (sizeof(a) / sizeof(*a)) int a[] = {1, 2, 3, 4, 5}; int main() { for (int k = -1; k <= asize(a) - 2; ++k) printf("%d\n", a[k + 1]); return 0; } |
C dilinin anahtar sözcüklerinden biri olan sizeof bir işleç görevindedir. Tek terimli olan ve önek konumunda (unary prefix) bulunan sizeof işleci, bir nesnenin bellekte kaç byte yer
Bir nedenden dolayı (bu neden ne olabilir o da ayrı bir soru) bir türe ilişkin sizeof değerini derleyicinin bize vereceği bir hata mesajından öğrenmek