*************************************指针(part2)******************************************
指向二维数组的指针的几种表示方式:
指向二维数组的指针的几种表示方式
练习1:
#include<stdio.h>
int main()
{
int a[3][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8}};
int (*p)[4] = a , *q = a[0]; //指针赋值先看类型,再看步长。
int i ;
for(i = 0;i < 3; i++)
{
if(0 == i)
(*p)[i+ i/2]= *q+1;
else
{
p++;++q;
}
}
for (i = 0; i< 3 ;i++)
{
printf("%d,",a[i][i]);
}
printf("%d,%d",*((int *)p),*q);
}
//结果 : 2 4 7 5 3
例题 1
#include<stdio.h>
#include<stlib.h>
#include<string.h>
void Init(char**skr)
{
*skr = (char*)malloc(sizeof(char)*64);
}
int main()
{
char *ptr = NULL;
Init(&ptr);
strcpy(ptr,"hello");
printf("%s\n",ptr);
return 0;
}
//结果:hello
例题 2
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char* name[]={"dog","cat","girl","boys","monkey"};
char** p;
int i = 0;
for( i = 0;i < 5; i++)
{
p = name + i;
printf("%s ",*p);
}
return 0;
}
//结果:dog cat girl boys monkey
今天所介绍的 指针更加的深入 现在而言我对这部分内容还是不太理解,我还需要进一步 消化 一下。