基本介绍
1.指针数组:由n个指向整型元素的指针而组成,里面存放指针
Int *ptr[3];
2.地址:
ptr[i]:元素地址
&ptr[i]:指针地址
图示
代码:
内存布局:
代码
#include<stdio.h>
#include<string.h>
//指针数组--int
void pointer(int *arr,int len)
{
int i, *ptr[10];
for(i=0;i<len;i++)
{
ptr[i]=&arr[i];
printf("arr[%d]=%d address=%p\n",i,arr[i],&arr[i]);
printf("ptr[%d]=%d address=%p self-address=%p\n",i,*ptr[i],ptr[i],&ptr[i]);
}
}
//指针数组--char
void cpointer(char* s,int len)
{
char *c[4];
int i=0;
printf("s=%s address=%p self-address=%p\n",s,s,&s);
while(i<len)
{
c[i]=&s[i];
printf("c[%d]=%c address=%p self-address=%p\n",i,*c[i],c[i],&c[i]);
i++;
}
}
void cpointer2(char *s,int len)
{
char *c[4];
int i;
printf("s=%s address=%p self-address=%p\n",s,s,&s);
for(i=0;i<len;i++)
{
c[i]=&s[i];
}
char *p=c[0];
for(i=0;i<len;i++)
{
printf