22 EYLÜL 2014, PAZARTESİ
Neden bu kod geçersiz bir işaretçi kullanın ister misin?
#include <iostream>
using namespace std;
int main()
{
char *pc;
int *pi;
double *pd;
pc = (char *)10000;
pi = (int *)10000;
pd = (double *)10000;
// 1)
cout << "before pc = " << (void *)pc << " pi = " << pi << " pd = " << pd << endl;
pc ;
pi ;
pd ;
// 2)
cout << "after increase pc = " << (void *)pc << " pi = " << pi << " pd = " << pd << endl;
return 0;
}
Bu kod(1, 2), neden değişkeni void gösterici pc dökme mi?
Bir çalışma zamanı hatası ise değişken baskı yaparsan olmaz oluşmaz kontrol ediyorum pc.
CEVAP
22 EYLÜL 2014, PAZARTESİ
Çünkü char* basılı kullanma cout << something denemek için bir yazdırma string (cout << "Hello, World" << endl; kullanan char * [pedantically, bu örnekte, bir const char *] temsil eder "Hello, World").
10000 (büyük OLASILIKLA kaza) adrese bir dize yazdırmak istemiyorum bu yana, kodu bir işaretçi bir dize olarak kullanılmasını önlemek için yapmak gerekiyor.
Yani 10* *döküm gerçek adresi almak char * HARİÇ genel olarak işaretçi türleri için varsayılan değer, baskılı,.
Bunu PaylaÅŸ:

Maven-gölge-eklenti kullanılır, nedir ...
Neden derleyici bir hata üretmeden değ...
Neden çift işaretçi kullanın? ya da Ne...
Neden nesne yerine bir işaretçi kendis...
Neden alıcıları ve ayarlayıcıları kull...