开发者社区> 问答> 正文

如何用二重指针取二维数组的元素呢?

如何用二重指针取二维数组的元素呢?

展开
收起
游客3gzok77e677xw 2022-03-30 02:45:24 442 0
1 条回答
写回答
取消 提交回答
  • /*
    #include<stdio.h
    //错误的做法
    int change(char **p)
    {
    	int i, j;
    	for (i = 0; i < 5; i++)
    	{
    		for (j = 0; *(*(p + i) + j) != '\0'; j++)
    		{
    			printf("%c", *(*(p + i) + j));
    		}
    		printf("\n");
    	}
    	return 0;
    }
    //若希望赋值,则不能使用指针的指针,要使用数组进行运算。
    int change(char p[][10])
    {
       int i, j;
       for (i = 0; i < 5; i++)
       {
         for (j = 0; p[i][j] != '\0'; j++)
         {
            p[i][j] = 'c';
            printf("%c", p[i][j]);
         }
         printf("\n");
       }
       return 0;
    }
    int main(void)
    {
    	char a[5][10] = { "hello", "zhuyu", "jiajia", "linux","Ubuntu" };
    	change(a);
    	return 0;
    }
    */
     
     
    #include<stdio.h> 
    int change(char **p)
    {
    	int i, j;
    	for (i = 0; i < 5; i++)
    	{
    		for (j = 0; *(*(p + i) + j) != '\0'; j++)//利用指针的指针取二维数组的元素
    		{
    			*(*(p + i) + j) = 'c';
    			printf("%c", *(*(p + i) + j));
    		}
    		printf("\n");
    	}
    	return 0;
    }
     
    int main(void)
    {
    	char a[5][10] = { "hello", "zhuyu", "jiajia", "linux","Ubuntu" };
    	char *b[5] = { a[0],a[1],a[2],a[3],a[4] };//这样做读取和写入操作都是可以的。
    	change(b);
    	return 0;
    }
    
    2022-03-30 02:46:49
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载