[C] String problema?

labas,

Į pirmąjį pranešimą galite intialising eilutę, kuri yra visiškai OK su Kompiliatorius, kur, kaip antra teiginys yra neteisingas ir tikriausiai suteiks klaida "Lvalue reikia ..."

kai mes parašyti x = ( "mano") ... Atkreipkite dėmesį, kad mes iš tikrųjų bando overwirte bazės adresas simbolių masyvas X.Kuris yra neteisėtas.

Bazinis adresas turi būti saugomi ir negali būti pakeistas.Kadangi manau,
* x = "mano"; turėtų dirbti su kai kompiliatorius.bandyti juos ...

iki

 
is an initializer-list with one initializer.

Pirmasis netradicinio (nes garbanotas skliausteliuose yra nereikalingas), bet teisingai, nes galite inicijuoti declarator (kintamąjį) arba su užduoties saviraiškos ar initializer sąrašas apsuptas Garbanotasis skliausteliuose. ( "Mano")
yra initializer sąrašas su viena initializer.

Antrasis yra klaidinga, nes garbanotas skliausteliuose neleidžiama aplink priskyrimas išraiška.Pamiršus Garbanotasis skliaustuose vis dar būtų neteisinga, nes tada jums būtų pamėginti perleisti masyvas X.
and don't forget #include <strings.h>Jei norite nukopijuoti eilutę į char masyvas, tai padaryti: strcpy (x, "mano"),
ir nepamirškite # include <strings.h>

because that would convert the address of string "my" to a char (resulting in garbage), and write it into the first element of array x.

Nedarykite * x = "mano",
nes, kad būtų paversti į string adresas "mano", kad char (todėl šiukšlių), ir įrašyti ją į pirmąjį elementą masyvo XNenaudinga.

Gauta svarstymo comp.lang.c Klausimai:
http://www.eskimo.com/ ~ scs / C-faq / top.html
Tai visiškai bendrų klausimų ir atsakymų, pavyzdžiui:
http://www.eskimo.com/ ~ scs/C-faq/q8.3.html

 

Welcome to EDABoard.com

Sponsor

Back
Top