about pointer syntax

spir denis.spir at gmail.com
Thu Oct 14 13:28:43 PDT 2010


Hello,

As a way to start learning D by practicing, I'm trying to implement a symbol table as linked list: see prototype code of the structs below. (Hints about good D coding welcome :-)

2 little questions about pointers:
1. To please the compiler, I had to wrap dereferencing in parens, like in "(*symbol).name". Is this just normal (for disambiguation)?
2. Just noticed the compiler accepts "symbol.name", while symbol is a pointer: is there implicit dereferencing of pointers to structs? If yes, does this also apply to pointers to arrays (for information, this what Oberon does).

And a note: had forgotten to add an empty main(), just for compiling: the linker produced a rather big amount of error text without any hint to the actual issue. Maybe dmd could cope with that before calling gcc?

Finally: the reference is rather harsh for me, esp there are very few example (I have few practice of C, and none of C++); the bits of tutorials I found are too light or just started (toc points to empty pages). Is there anywhere online a kind of D programming guide, even not polished or possibly unfinished (I know about the book; maybe I'll order it, but in meantime...).

Thank you,
Denis

================== code ======================
struct Symbol {
    string name  = "" ;
    int element  = 0 ;
    Symbol* next = null ;
}
struct List {
    Symbol* first = null ;
    int element(string name) {
        Symbol* symbol = this.first ;
        while (symbol) {
            if ((*symbol).name ==  name) {return (*symbol).element ;} ;
            symbol = (*symbol).next ;
        }
        return 0 ;
    }
}
==============================================

-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com



More information about the Digitalmars-d-learn mailing list