12,696,179 members (30,548 online)
Rate this:
See more:
```int a[10];
int i;
for (i=0; i<10; i++)
a[i] = i;
printf("%d", a[-1]);
return 0;```
Posted 11-Feb-13 4:34am
Updated 11-Feb-13 4:42am
v2

Rate this:

## Solution 1

0. You are already accessing the array at -1 position which is outside the array.
1. Don't do this.
2. Whatever the reason for wanting to do this there is a better way to do it.
3. See number 1.
...
...
Maciej Los 11-Feb-13 9:43am

Short and to the point! +5!
Albert Holguin 11-Feb-13 11:24am

Pretty much... +5
Rate this:

## Solution 2

You can't, if you mean the last but one element then you have to do `a[(sizeof(a) / sizeof(a[0])-1]`.
Rate this:

## Solution 3

Yes, you can access to an array element [i-1] only if the index of position is bigger then 0 (in zero-based arrays).

```    int i = 0;
int j = 0;
for (i=0; i<10; i++)
{
printf("%d", a[i]);
if (i>0)
{
j=i-1;
printf("%d", a[j]);
}
}```

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Top Experts
Last 24hrsThis month
 OriginalGriff 308 Jochen Arndt 100 Richard Deeming 80 Neha Ambasta 80 ppolymorphe 68
 OriginalGriff 3,511 Peter Leow 2,180 Mika Wendelius 1,743 ppolymorphe 1,579 Jochen Arndt 1,414

Advertise | Privacy | Mobile
Web02 | 2.8.170118.1 | Last Updated 11 Feb 2013