2016-11-20 1 views
-2

Ich habe ein bisschen Probleme mit dem Lesen dieser Variablen-Deklaration. Könnte mir bitte jemand eine Hand geben?Wie lesen Variablen Deklarationen mit volatile, const und *

const int volatile * volatile const * const volatile * ptr; 

Hilfe wäre wirklich zu schätzen.

+0

ptr ist ein const flüchtiger Zeiger auf einen const flüchtigen Zeiger auf eine const volatile int. Und das würde nicht kompilieren, da alle const-Deklarationen einen Initialisierer benötigen. – DeiDei

+2

@DeiDei, ja, es tut: http://ideone.com/vZCKDn –

+0

IDEONE ist nicht die beste Wahl für eine Codeüberprüfung. – Michi

Antwort

1

Der Bezeichner ptr ist ein Zeiger auf einen Const-Zeiger auf einen const-Zeiger auf eine Const-Variable int.

const int volatile * volatile const * const volatile * ptr; 

Zeiger: * ptr

auf einen const volatilen Zeiger: * const volatile

auf einen const volatilen Zeiger: * volatile const

zu einem const volatilen int: const int volatile

Wie können Sie Die Reihenfolge der Qualifier um den Typbezeichner spielt keine Rolle. Die Definition ist identisch mit:

const volatile int *const volatile *const volatile *ptr; 
Verwandte Themen