c - 指向多维数组的指针

标签 c arrays pointers multidimensional-array

我不知道这段代码有什么问题,我只是在这里得到一个随机结果:

#include <stdio.h>
#include <conio.h>
int main() {
    char arr[3][2] = {{'z','a'},{'e','r'},{'x','v'}};
    int i;
    scanf("%d",&i);
    printf("%c",*(arr+i));
    getch();
}

谢谢

最佳答案

首先不清楚你想做什么。 我只能建议更改声明

printf("%c",*(arr+i));

下面的方法

printf("%c",**(arr+i));

在这种情况下,如果 i 在 0 - 2 范围内,则此语句将输出相应行的第一个字符。例如,对于 i 等于 tp 1,输出将为

e

如果你想使用 i 作为索引输出数组中的任何字符,那么使用

printf("%c", *( *arr + i ));

或者

for ( int i = 0; i < 6; i++ ) printf("%c", *( *arr + i ));

关于c - 指向多维数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22622924/

相关文章:

javascript - 根据该对象的某些属性的数组从数组中删除对象

c++为什么不在指数时打印所有元素

c - 持有相同 Node 结构地址的两个指针打印不同的值

c - #定义带逗号的表达式

c - 简单的 do while 循环使用 while(true);

c - C 中是否有一种编程方式来确定 Linux 下一组进程中曾使用过的进程数?

jQuery 从序列化数组中删除项目

c - 管理指向套接字文件描述符的指针

c++ - 不匹配 'operator=='

c - 从字符串中删除空格