|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #define NUM 5
- int main()
- {
- char slogans[NUM][100] = {
- "I love FishC.com!",
- "Keep moving!",
- "Impossible is nothing!",
- "Just do it!",
- "I am what I am!"};
- int i;
- for (i = 0; i < NUM; i++)
- {
- printf("%s\n", slogans[i]);
- }
- return 0;
- }
复制代码
这个程序小甲鱼说可以打印出来这5个字符串。
两个问题
第一个问题字符串存放到数组当中是整体存,存放占的空间(比如说是【2】【3】)是一个整体,还是分开存,一个字符一个字符的存,比如说‘ji’这个字符串,是j在【0】【0】,i在【0】【1】,‘\0’在【0】【2】
第二个问题是,以我个人的理解,如果想打印出来这个五个字符串的话,得是【0】【0】,【0】【1】,【0】【2】,【0】【2】,【0】【4】。
本帖最后由 sunrise085 于 2020-4-28 21:56 编辑
看上图,这就是二维数组的存储,当然,我没有画全,每行应该有100个单元,每个单元存放一个字符(一个字符就占一个字节)
对于打印,有不同的方式,%s是打印字符串,直接给出一维数组首地址即可,也就是如你上面的程序中写的那样,printf("%s\n", slogans[i]);
还可以逐个字符打印,那就是用%c打印了,这时就需要写清楚打印的是哪一行哪一列,这就需要双层循环了
- #include <stdio.h>
- #define NUM 5
- int main()
- {
- char slogans[NUM][100] = {
- "I love FishC.com!",
- "Keep moving!",
- "Impossible is nothing!",
- "Just do it!",
- "I am what I am!"};
- int i,j=0;
- for (i = 0; i < NUM; i++)
- {
- while(slogans[i][j]!='\0')
- printf("%c", slogans[i][j++]);
- printf("\n");
- j=0;
- }
- return 0;
- }
复制代码
|
|