/*****************************************************************************************
我自己做了一个测试,但是还是有几点不懂的地方,代码在下方
测试结果:
1、int型数组如果去掉了中括号就是第一个元素的地址
2、char型数组如果去掉了后面的中括号就能够正常格式化输出
hello world,如果单独输出第一个元素的话,就会自动结束运行
问:
1、如果数组去掉了后面的中括号的话就是第一个元素的地址的话,
那①处(下面代码标注)为什么不是输出第一个元素的地址而是输
出hello world
2、如果我想要显示第一个字符,方法如第②处那样,点击运行之后,
跳出来的窗口就会自动停止工作,为什么不是显示第一个字符而
是停止工作
3、如果char型要去掉一个中括号的话,那么第③处的代码1处应该
是显示hello,代码2处应该是显示world,但是输出结果却不是我
想的那样(代码最后有输出结果),为什么此处的输出不是我想的那样
4、问题写在文章最末的说明里
*****************************************************************************************/
#include "stdio.h"
void main()
{
int a[]={1,2,3,4,5,6,7,8,9};
char s[]="hello world";
char ss[][5]={"hello","world"};
//输出a
printf("%d\n",a);
//输出a的地址
printf("%d\n",&a);
//输出a的第一个元素的地址
printf("%d\n",&a[0]);
//①格式化输出字符
printf("%s\n",s);
//②错误代码
//printf("%s\n",s[0]); //程序停止工作,但代码编译未报错
//③验证猜想
//代码1
printf("%s\n",ss[0]);
//代码2
printf("%s",ss[1]);
}
/*********输出结果*****************
1703708
1703708
1703708
hello world
helloworldm
worldm
*********************************/
/**************说明***************
输出结果最后两行最后的m是随机乱码,有
时候会是y,有时候会是x,有时候会是空白
为什么会出现乱码
********************************/