SORU
30 Kasım 2011, ÇARŞAMBA


Arasındaki fark==[0]C=='\0' NULL str str nedir?

str == NULL str[0] == '\0' arasındaki farkı bilmek istiyorum:

int convert_to_float(char *str, double *num)
{
    if ((str == NULL) || (str[0] == '\0'))
        return(-1);

    *num = strtod(str, (char **)NULL);
    return(0);
}

Linux üzerinde gcc kullanıyorum.

CEVAP
30 Kasım 2011, ÇARŞAMBA


str==NULL işaretçi NULL olup olmadığını söyler.

str[0]=='\0' dize sıfır-uzunlukta olduğunu belirtir.

Bu kod, test:

if ((str == NULL) || (str[0] == '\0'))

ya BOŞ veya bulunduğu durum yakalamak için kullanılır-uzunluğu sıfır.


Kısa devre burada önemli bir rol oynadığını not:Test noktası str geçerli bir c-dize uzunluğu en az 1 olduğundan emin olun.

  • 9* *ikinci test str BOŞ değilse, yalnızca çalışır.
  • Bu nedenle, ilk test str == NULL str BOŞ zaman erken çıkmak gereklidir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009
  • UniqueApps

    UniqueApps

    4 Ocak 2009