Datatypes

=== dan sachs ===
https://www.youtube.com/watch?v=D7Sd8A6_fYU
59min Datatypes are compile time properties that have size and alignment, valid values and set of permitted
operations. What isn't permitted are indirection(pointers), dot based member selection and calling it like a function. 
A type's operations may include implicit type conversions to other types. An array in a parameter list declares a pointer
1h3min. Compilers use type information to turn potential run time errors into compile time errors, such as dividing a pointer or doing bitwize on a double. Cpp helps you leverage this better than c coding lang(Torvalds has a different view though). ZeroMQ has the view that the biggest problem with CPP is that you can't figure out where the bugs are when doing oop with it(plain procedural style he implies is fine). J. Blow's game the "The Witness" is 200,000 lines of plain procedural CPP code. 
An array isn't a pointer, a pointer can point to the storage location of any datatype.
1h05 problem with memcopy. At 1h06 he makes a strawman argument, p = &thearray[0] is the correct way of assigning the memory location(start) of an array, p = thearray[10] isn't, C coders know this. 
An array is a continues block of memory of the same datatype. An ADT or abstract datatype is an array of pointers
where each pointer points to an array of a specific datatype. This is the basis for lists in python. There isn't anything "abstract" about this, it is a specific particularity, Berkeley idealism that is.
=== links ===
oop
Category:Oop