رأيت تعليقًا يقول أن التهيئة لصفيف char مع "\001"
سيضع رقمًا كحرف أول. لقد رأيت أين \0
لا يضع نول.
التعليق غير المعدل:
char input[SIZE] = ""; is sufficient initialization. while ( '\001' == input[0]) doesn't do what you think it is doing if you have initialized input[SIZE] = "\001"; (which creates an empty-string with the nul-character as the 1st character.)
هذا البرنامج
#include <stdio.h>
#define SIZE 8
int main ( void) {
char input[SIZE] = "\001";
if ( '\001' == input[0]) {//also tried 1 == input[0]
printf ( "octal 1\n\n");
}
else {
printf ( "empty string\n");
}
return 0;
}
يعمل على لينكس ، مع ترجمة gcc
النواتج
octal 1
لذا فإن الحرف الأول هو 1
عوضا عن '\0'
.
هل هذا هو السلوك القياسي أو مجرد شيء مع لينكس و gcc
؟؟؟ لماذا لا تضع نول؟