cracks open the "REFERENCE MANUAL FOR THE Ada(r) PROGRAMMING LANGUAGE"
looks like Ada83 specification has address clause though, which can effectively be used as a pointer when combined with System.Address / 'Address attribute.
Also has access type, but you can't pass access type around all willy-nilly-like without unchecked_access (added in 95?).
C pointers are more flexible though, that much is true.
edit, almost forgot: the main downside of Ada < 95 is you don't get function pointers, or import/export pragma
Nim [1] is like Ada in these ways but less verbose:
import strutils # Or from strutils import repeat Or etc.
type Foo = -5 .. 10 # Or range[-5 .. 10]
echo Foo.low, " ", Foo.high # range limits
echo repeat(s = "x", n = Foo.high) # named params
# var f: Foo = 15 # Will not compile
looks like Ada83 specification has address clause though, which can effectively be used as a pointer when combined with System.Address / 'Address attribute. Also has access type, but you can't pass access type around all willy-nilly-like without unchecked_access (added in 95?).
C pointers are more flexible though, that much is true.
edit, almost forgot: the main downside of Ada < 95 is you don't get function pointers, or import/export pragma