比如定义个char a[30],还没初始化,那么是a[0]中存放的'\0'还是a[29]中存放的是'\0',
若char a[30]="Hello"那么是a[5]='\0'还是a[30]='\0'呢
ç´æ¥å¨å符æ°ç»æåä¸ä¸ªå符åé¢å ä¸'\0'ã
ä¾å¦ï¼char a[10],éè¦åæ¾âhelloâå符串ï¼a[0]-a[4]åå«åæ¾h,e,l,l,oï¼a[5]åæ¾'\0';
å¨Cè¯è¨ä¸æ²¡æä¸é¨çå符串åéï¼é常ç¨ä¸ä¸ªå符æ°ç»æ¥åæ¾ä¸ä¸ªå符串ãå符串æ»æ¯ä»¥'\0'ä½ä¸ºä¸²çç»æ符ãå æ¤å½æä¸ä¸ªå符串åå ¥ä¸ä¸ªæ°ç»æ¶ï¼ä¹æç»æ符 '\0'åå ¥æ°ç»ï¼å¹¶ä»¥æ¤ä½ä¸ºè¯¥å符串æ¯å¦ç»æçæ å¿ãæäº'\0'æ å¿åï¼å°±ä¸è½åç¨å符æ°ç»çé¿åº¦æ¥å¤æå符串çé¿åº¦äºã
ä¾å¦ï¼char a[10],éè¦åæ¾âhelloâå符串ï¼a[0]-a[4]åå«åæ¾h,e,l,l,oï¼a[5]åæ¾'\0';
å¨Cè¯è¨ä¸æ²¡æä¸é¨çå符串åéï¼é常ç¨ä¸ä¸ªå符æ°ç»æ¥åæ¾ä¸ä¸ªå符串ãå符串æ»æ¯ä»¥'\0'ä½ä¸ºä¸²çç»æ符ãå æ¤å½æä¸ä¸ªå符串åå ¥ä¸ä¸ªæ°ç»æ¶ï¼ä¹æç»æ符 '\0'åå ¥æ°ç»ï¼å¹¶ä»¥æ¤ä½ä¸ºè¯¥å符串æ¯å¦ç»æçæ å¿ãæäº'\0'æ å¿åï¼å°±ä¸è½åç¨å符æ°ç»çé¿åº¦æ¥å¤æå符串çé¿åº¦äºã
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-22
定义char a[30],如果没有初始化,从a[0]到a[29]都是'\0',也就是数值0(强制类型转换为int就等于0);
char a[30] = "hello",从a[5]到a[29]都是'\0',a[30]未知;
另外你可能不明白:char a = '\0'; 表达式(int)a==0; 为true;
‘\0’是字符串结束的标志,比如定义:char a[] = "hello"; 则a[5] = '\0', a[6]未知。