c语言指针变量中行指针和列指针是什么?要如何使用?

最好精简一些,不懂的不要过来回答。希望大佬赶紧出现!召唤阵型:┏━━━━━━━┓┃千!变┃┃万!化┃┗━━━━━━━┛... 最好精简一些,不懂的不要过来回答。希望大佬赶紧出现!
召唤阵型:
┏━━━━━━━┓
┃ 千 !变 ┃
┃ 万 !化 ┃
┗━━━━━━━┛
展开
 我来答
yx陈子昂
高粉答主

2020-03-27 · 每个回答都超有意思的
知道大有可为答主
回答量:3.2万
采纳率:75%
帮助的人:3673万
展开全部
对于一个二维数组:
int a[3][5];

a即是它的行指针,a+0表示第0行的地址,a+1表示第1行地址…
a[row]+col即列指针,列指针经过一次解引用就可以转化成二维数组中实际的值,列指针也是指向非常量的常量指针。
更多追问追答
追问
具体要怎么使用呢
追答
1.输入三个字符串,按由小到大的顺序输出。
#include
#include
#define M 40
main()
{
char a1[3][M],b1[3][M];
char (*p)[M]; //p是指向一维数组的指针,对于二维数组来说是行指针(指向列的指针)
char (*temp)[M];
p=a1; //a1,b1都是行指针
temp=b1;
int i,j;
printf("put into your text:\n");
for(i=0;i0) //(p+i)是第i行的行指针;*(p+i)=p[i]是第i行第0列的列指针
{strcpy(*temp,*(p+i)); //其实完全可以省略temp这个指针,把temp用b1代替即可,虽然数组名b1不
strcpy(*(p+i),*(p+i+1)); 能赋值,但是strcpy是字符串覆盖(字符串赋值),不是对数组名b1
strcpy(*(p+i+1),*temp); 这个地址常量赋值。
}
}
for(i=0,p=a1;i<3;i++)
{
printf("%s ",p++);

}
printf("\n");
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式