3 ms·
Now, at one point, you stopped talking about arrays and started talking about pointers.
by mfukar 11y ago
Now, at one point, you stopped talking about arrays and started talking about pointers.
- veli_joza 11y agoExactly. When array is passed into function, you lose length information and array construct is reduced to pointer. Array syntax is just synthetic sugar for dereferencing pointer with offset.
- mfukar 11y agoThis discussion won't get very far if all you think arrays are is syntactic sugar. The array type is useful - think in terms of a static analyser if it helps - in different ways than pointers.
- cyphar 11y ago"array syntax" != "arrays". He means things like a[i]. Arrays are only really arrays in their local scope, if you pass them to functions they suddenly are pointers (but for some insane reason, C compilers let you specify "the size of the array in a function argument" which doesn't actually compile to any code).
- jandrese 11y agoThat's because C tosses out all of that array state information at the drop of a hat once you start passing them around to functions. Worse, it's an easy way to get burned on the sizeof() function, especially if you at some point refactor the code and put that chunk in a function separate from the original declaration. This is why C programmers get gunshy about relying on that information and instead just treat strings like pointers all of the time.
- mfukar 11y ago> This is why C programmers get gunshy about relying on that information and instead just treat strings like pointers all of the time. Good programmers do nothing of the sort.