neden d Tamsayı için stand %mu?
Bu verimli değil, ama bir şekilde 1 ** aramalar için biçimlendirme kodları hatırlamak arıyorum. , *, *4%s%p hepsi ortada, ama %d nereden geldiğini anlayamıyorum. %i zaten başka bir şey alınır mı?
CEVAP
Açılımı "decimal" (10 tabanı), "tamsayı" değil. hexadecimal (baz 16), baskı için %x ve octal yazdırma (8 tabanı) %o. Bir tamsayı bu üslerin herhangi bir yerinde olabilir.
printf() kullanabilirsiniz %i eşanlamlı %d, eğer bunu tercih ediyorsanız belirtmek için "tam sayı" yerine "onluk" ama %d genellikle tercih olarak daha özel.
Giriş, scanf() kullanarak %i %d de kullanabilir. %i demek ayrıştırma gibi bir tamsayı herhangi bir baz (sekizlik, onaltılık veya ondalık olarak gösterilen bir 0 0x önek), %d demek çözümleme bir ondalık tamsayı.
İşte aksiyon hepsi bir örnek:
#include <stdio.h>
int main() {
int out = 10;
int in[4];
printf("%d %i %x %o\n", out, out, out, out);
sscanf("010 010 010 010", "%d %i %x %o", &in[0], &in[1], &in[2], &in[3]);
printf("%d %d %d %d\n", in[0], in[1], in[2], in[3]);
sscanf("0x10 10 010", "%i %i %i", &in[0], &in[1], &in[2]);
printf("%d %d %d\n", in[0], in[1], in[2]);
return 0;
}
Yani, tek kullanım %i eğer istediğiniz giriş tabanına bağlı önek; eğer giriş temel olmalıdır sabit, bunu kullanmalısın %d, %x %o. Özellikle 0 bir lider sekizlik modda koyar gerçeği yakalamak olabilir.

Neden bu kadar karmaşık kod iki güç ta...
Neden BOYUTU deÄŸiÅŸmeyen tek ÅŸey @Tamsa...
Neden char[] şifreler için Dize Java t...
Neden&; dizi yineleme için... "* o kad...
Bir tamsayı'in kare kökü belirlem...