sususususu 发表于 2022-11-16 19:48:58

指针数组和数组有什么区别吗?萌新求教

#include<stdio.h>
int main()
{
    char str={{1,2,3},{4,5,6},{7,8,9}};
    int i,j,sum1=0,sum2=0;
    for(i=0;i<3;i++)
       for(j=0;j<3;j++)
       {
         if(i==j)
         sum1+=str;
         if(i+j==2)
         sum2+=str;
       }
       printf("主对角线成员之和:sum=%d\n,副对角线成员之和:sum=%d\n",sum1,sum2);
       return 0;
}





#include<stdio.h>

int main()
{
        char *pl = {
        "lll",
        "hhhh",
        "iiii",
        "nnnnn",
        "aaaaa"
        };
        int i;
       
        for(i= 0; i< 5; i++)
        {
                printf("%s\n", pl);
        }
        return 0;
}






这两段代码有什么区别吗?

jackz007 发表于 2022-11-16 20:00:12

本帖最后由 jackz007 于 2022-11-16 20:03 编辑

char str={{1,2,3},{4,5,6},{7,8,9}};
      定义了 str 为 3 x 3 的字符型二维数组(注意,不是字符串)。如果要把一个行用来储存字符串的话,那么,每个行最多只能储存 2 个字符的字符串。
      char *pl = {
      "lll",
      "hhhh",
      "iiii",
      "nnnnn",
      "aaaaa"
      };
      定义了pl 为含有 5 个元素的指针数组,每个指针元素指向字符串数组中的一个字符串,这些事情由编译器来负责搞定。
页: [1]
查看完整版本: 指针数组和数组有什么区别吗?萌新求教