2011-05-12 27 views
7

kaçış içeren Char * dan kömürü oluşturun:düşünün karakteri aşağıdaki Char * örnek

char* s = "\n"; 

bu yeni satır karakteri şöyle temsil eden bir tek kömürün dönüştürülebilir nasıl

char c = '\n'; 

Yeni satırların işlenmesine ek olarak, herhangi bir karakteri bir karaktere dönüştürerek bir karaktere dönüştürebiliyorum. Bu nasıl mümkün olabilir?

+6

'Char c = * s; 'çalışır. Dize içinde '\ n'' kaynak formda sadece iki karakterdir: derledikten sonra tek bir karakterdir; Diğer tüm kaçış karakterleri için aynı. Derlendikten sonra '' fo \ 111 \ tar '' dizesi, 7 karakterden oluşur (kaynak kodunda 6 ve boş bir sonlandırıcı görünür). – pmg

+2

@pmg - Bu bir cevap değil! – JonH

+0

@pmg: JonH haklı. Post it – Heisenbug

cevap

9

char c = *s; çalışır.

Dizenin içinde '\n' dizgisi, kaynak biçiminde yalnızca iki karakterdir: derlendikten sonra, tek bir karakterdir; Diğer tüm kaçış karakterleri için aynı.

dize "fo\111\tar", derleme sonra, 7 karakter (kaynak kodu (6 görünür 'f', 'o', '\111', '\t', 'a' ve 'r') ve bir boş terminatör) sahiptir.

+0

+1 - size söyledim :-p – JonH

+0

Evet, doğru. Teşekkür @JonH :) – pmg

+0

Fantastik, teşekkürler @ pmg. – AgileVortex

1

Bunun gibi bir şey mi var? Bunun KQUEUE

char * s = "\n"; 
char c = *s; 
3

:

char* s = "\n"; 
char c = *s; 
2

Diğerlerinin dediği gibi, yeni satır aslında bellekte yalnızca bir karakterdir. bir dizidir sanki bir dize pointer tek bir karakter almak için, imlecinizi erişebilirsiniz (tabii ki, farz dize için ayrılan bellek olduğunu, işaret):

char* s = "\n"; 
char c = s[0]; 
İlgili konular