Professional Documents
Culture Documents
Lec 17 PDF
Lec 17 PDF
#include <stdio.h>
int main(void)
{
char str[5] = {'H', 'E', 'L', 'L', 'O'};
char *ptr = &str[0];
printf(“ptr = %08x\n”, ptr);
Lecture 17 printf(“str
return 0;
= %08x\n”, str);
Pointers }
CSE115: Programming Language I
int main(void)
contains the starting address of the 0x00000001
.
array (address of the first element)
.
{
str 0x180A96e7
char str[5] = {'H', 'E', 'L', 'L', 'O'}; str
0x180A96e8
0x180A96f3
0x180A96e9
char *ptr = &str[0];
0x180A96f0
printf(“ptr = %08x\n”, ptr); 0x180A96f1
‘H’ ‘E’ ‘L’ ‘L’ ‘O’
0x180A96f2
printf(“str = %08x\n”, str);
0x180A96f3 ‘H’
return 0; 0x180A96f4 ‘E’
0x180A96f5 ‘L’
}
0x180A96f6 ‘L’
Output: 0x180A96f7 ‘O’
ptr = 0028ff17
.
str = 0028ff17
.
Arrays and Pointers Arrays and Pointers
• The array name is basically the address content
str str
‘H’ ‘E’ ‘L’ ‘L’ ‘O’ ‘\0’ ‘H’ ‘E’ ‘L’ ‘L’ ‘O’ ‘\0’
ptr
str str
‘H’ ‘E’ ‘L’ ‘L’ ‘O’ ‘\0’ ‘H’ ‘E’ ‘l’ ‘L’ ‘O’ ‘\0’
ptr ptr
str str
‘H’ ‘E’ ‘l’ ‘L’ ‘O’ ‘\0’ ‘H’ ‘E’ ‘l’ ‘L’ ‘O’ ‘\0’
ptr ptr
A 0x180A96e8
0x180A96f3
A
0x180A96e9
0x180A96f0
0x180A96f1
0x180A96f2
3 1 8 0x180A96f3 3 1 8
0x180A96f4
3
0x180A96f5
3 1 8 3 1 8
ptr ptr