/
Forside
/
Teknologi
/
Udvikling
/
C/C++
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
C/C++
#
Navn
Point
1
BertelBra..
2425
2
pmbruun
695
3
Master_of..
501
4
jdjespers..
500
5
kyllekylle
500
6
Bech_bb
500
7
scootergr..
300
8
gibson
300
9
molokyle
287
10
strarup
270
const const
Fra :
Troels Thomsen
Dato :
10-05-04 13:09
Jeg har leget lidt med const definitioner i funktions-hoveder
void someFunc(const char* const p1)
{
*p1 = 4; // error pga den ene const
p1++; // errror pga den anden const
}
så prøvede jeg det samme med char arrays men synes at flg virker ens
const char asdf[] // asdf[2] = 2 ulovlig
char const asdf[] // asdf[2] = 2 ulovlig
og ingen af dem gør assignment af array-basen / pointeren ulovlig
asdf++; // lovlig uanset hvilken const definition man bruger.
Det kan man åbenbart ikke ?
mvh Troels
Ivan Johansen (
10-05-2004
)
Kommentar
Fra :
Ivan Johansen
Dato :
10-05-04 14:04
Troels Thomsen wrote:
> Jeg har leget lidt med const definitioner i funktions-hoveder
>
> void someFunc(const char* const p1)
> {
> *p1 = 4; // error pga den ene const
> p1++; // errror pga den anden const
> }
Korrekt. Generelt læses definitionen fra højre mod venstre, f.eks.:
char const *p1; //Pointer til konstant char
char * const p2; //Konstant pointer til char
char const * const p3; //Konstant pointer til konstant char
En ekstra regel er dog at hvis der ikke står noget til venstre for
const, så er const knyttet til det som står til højre. Disse er derfor ens:
char const *p4; //Pointer til konstant char
const char *p5; //Pointer til konstant char
> så prøvede jeg det samme med char arrays men synes at flg virker ens
> const char asdf[] // asdf[2] = 2 ulovlig
> char const asdf[] // asdf[2] = 2 ulovlig
Ja, de er ens da const i begge tilfælde er knyttet til char.
> og ingen af dem gør assignment af array-basen / pointeren ulovlig
> asdf++; // lovlig uanset hvilken const definition man bruger.
> Det kan man åbenbart ikke ?
Nej, det tror jeg ikke kan lade sig gøre array syntaks, men en pointer
og et array som argument til en funktion er det samme, så du kan lige så
godt bruge pointer syntaks.
Ivan Johansen
Søg
Alle emner
Teknologi
Udvikling
C/C++
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177558
Tips :
31968
Nyheder :
719565
Indlæg :
6408914
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.