C语言数组括号里是字母,C语言数组去掉了数组名后面的中括号是什么意思

/*****************************************************************************************

我自己做了一个测试,但是还是有几点不懂的地方,代码在下方

测试结果:

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,有时候会是空白

为什么会出现乱码

********************************/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值