猿问

C语言数组

数组最后不是应该'\0'  为什么书上有些直接把数组用完  没留下最后一个空间给'\0'比如a[2]只能给a[0]赋值a[1]应该留给'/0'

慕尼黑9521551
浏览 1817回答 2
2回答

慕莱坞8333017

2177650266416821959830586196670848964098205586406697336628750844248065418751015331776649980893243987949978754210676538867560898542579324287652886740989247588031185491982132722560703031430418252093186374107652143028264998206212137643936640980685931881426971064398431440865393564019064315398231770956424159885188082119742799598

qq_追梦_26

不一定说数组的最后一个存储的‘\0’,‘\0’的ASCII为0,是不可显示字符,如果你想用这个数组存储字符串,并且想打印类似于printf那么你就得将字符串的最后一个字符赋值为‘\0’,如果不赋值,可能会在正常的字符串后面出现一堆乱码(假设字符串最后一位不是0),也可能就打印那么多字符(假设最后一位是0),这个具体要看看你电脑内存当时定义你的字符串时申请出来的地址存储了,总之这样的问题是不可预知的,但是如果你只是想定义一个数组,并不进行打印,比较,复制等库函数的操作,那么这个数组最后一位也就没必要是‘\0’,例如int tmp[20]......因此不管怎样具体问题具体分析,不过如果是字符串的话做了打印,比较,复制等库函数的操作,记着一定保证最后一位是‘\0’结尾,编译器不会那么智能帮你把这件事情做了的。。。。

慕粉0732086931

那个‘\0’一般用于储存字符串常量,是个转义字符,它的ASCII码值是0,为空字符。通常作为字符串结束的标志,起到一个供辨认的标志作用。程序中通过检测‘\0’的位置来判断字符串的长度
随时随地看视频慕课网APP
我要回答