X++ -ban a karakterkészlet az ASCII szabványban rögzítetteknek felel meg. A nyelv case insensitive, tehát a kisbetű nagybetű nem számít. A nyelvi elemek nagy hasonlóságot mutatnak a C++-hoz, illetve a C#-hoz. Utóbbi különösen kiemelt fontossággal bír, ugyanis a fordító képes közvetlenül is a C# kód felhasználására.
AzonosítókAz azonosítókat az ASCII szabvány ajánlásának megfelelően kell írni. Használható az aláhúzás karakter is.
Az azonosítóknak mindíg betűvel, vagy aláhúzásjellel kell kezdődniük, ezután már állhat tetszőleges számjegy karakter is.
A változó hosszára nincs megkötés, az bármilyen hosszú lehet. A változót egybe kell írni, változó nevében whitespace karakter nem lehet.
A nyelv számos foglalt szót tartalmaz:
abstract, bool, break, byte,case, catch, char, changecompany, continue, decimal, default, do, double, else, enum, false, for, foreach, if, in, int, interface, lock, long, new, null, object, override, params, private, protected, public, return,
real, server, static, str, switch, this, throw, true, try, typeof, virtual, void ,while
A nyelv érdekessége, hogy nem elemi típus esetén deklarálható a típus
nevével megegyező nevű változó is. Pl.: CustTable custTable;
Konvenció, hogy az osztálynevek nagybetűvel kezdődnek, míg az objektumokat kisbetűvel kell kezdeni.
Numerikus literál: egész, vagy real típusú lehet. Tizes számrendszerben.
Tizedespont, jelzi a tizedesjegyet.
Logikai literálok: a true és a false.
Létezik beépített felsorolt típusbéli megfelelője: NoYes::Yes és a NoYes:No
Beépített konstans a nyelvben nincs, de helyette használható a deklarációs
részben elhelyezett úgynevezett "makro". Pl.: #define.MaxValue(256);
ami #MaxValue -hivatkozással érhető el a kódból. A hivatkozás helyén, a beállított érték fog szerepelni.
A megjegyzéseket a C#-ban és C++ -ban megszokott módon lehet használni. A "//" sor végéig tartó megjegyzést jelent, míg a /* ... */ jelölés többsoros megjegyzés elhelyezését teszi lehetővé a forráskódban.