Right. You said [] can be applied to any pointer. That sounds right.
What's this a few emails ago with [] being applied to immediate values
in C99, like this
6[4]
Fred Weigel wrote:
Marc
sizeof is an operator
arr evaluates to the base of the array. [] is an operator.
since arr is the
On Wed, Nov 14, 2007 at 12:39:18AM +0100, grischka wrote:
Could a C guru out there please tell me why the following works?
Extra points if you can explain why it makes sense.
#include stdio.h
int main(){
int arr[10];
printf(%d\n,sizeof arr[0]); // ok
On Wed, Nov 14, 2007 at 12:39:18AM +0100, grischka wrote:
Could a C guru out there please tell me why the following works?
Extra points if you can explain why it makes sense.
#include stdio.h
int main(){
int arr[10];
printf(%d\n,sizeof arr[0]); // ok
printf(%d\n,sizeof(arr)[0]); // ok, but why?
Why should that be valid syntax? Is C99 really weird or what?
(its a immediate value being used in place of a pointer.)
-Mike
Marc Andre Tanner wrote:
On Wed, Nov 14, 2007 at 12:39:18AM +0100, grischka wrote:
Could a C guru out there please tell
On Nov 14, 2007, at 5:18 PM, Mike wrote:
printf(%d\n,sizeof(arr)[0]); // ok, but why?
Why should that be valid syntax? Is C99 really weird or what?
(its a immediate value being used in place of a pointer.)
The C99 grammar says that sizeof is:
unary-expression:
sizeof unary-expression
On Nov 14, 2007, at 5:39 PM, Mike wrote:
(arr)[0] would be valid yes. But 40[0] should be invalid, right?
Yes, and it is. 40[arr] is valid of course.
-Chris
___
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
Hi,
Could a C guru out there please tell me why the following works? Extra points
if you can explain why it makes sense.
#include stdio.h
int main(){
int arr[10];
printf(%d\n,sizeof arr[0]); // ok
printf(%d\n,sizeof(arr[0])); // ok
printf(%d\n,sizeof(arr)[0]);
Marc Andre Tanner wrote:
Could a C guru out there please tell me why the following works? Extra points
if you can explain why it makes sense.
#include stdio.h
int main(){
int arr[10];
printf(%d\n,sizeof arr[0]); // ok
printf(%d\n,sizeof(arr[0])); // ok
Could a C guru out there please tell me why the following works?
Extra points if you can explain why it makes sense.
#include stdio.h
int main(){
int arr[10];
printf(%d\n,sizeof arr[0]); // ok
printf(%d\n,sizeof(arr[0])); // ok
printf(%d\n,sizeof(arr)[0]); // ok, but why?
return 0;
On Nov 13, 2007, at 3:39 PM, grischka wrote:
Could a C guru out there please tell me why the following works?
Extra points if you can explain why it makes sense.
#include stdio.h
int main(){
int arr[10];
printf(%d\n,sizeof arr[0]); // ok
printf(%d\n,sizeof(arr[0])); // ok
10 matches
Mail list logo