在Linux C开发中,某个数据表中字段的长度设计为n,那么在应用程序中表示这个字段的变量应该定义为多长?
打个比方:数据表中有一个status字段:状态, 设计表的时候将这个字段设为1,在应用程序中定义了一个status字符数组来存储这个状态值,即: char status[1+1];
那么这个status字符数组的长度为什么是1+1 ? 是因为'\0'的原因吗 ? 谁能说详细一点 ? 谢谢!
[解决办法]
这得看具体的应用场景了,加个'\0'估计为了后面更方便的构造sql语句,比如strcat,strcpy等;要是用sprintf构造sql语句,完全没必要char status[1+1];如果是为了内存对齐,这样写也不是很好;
[解决办法]
对于数组(数据库可能不叫数据,叫varchar什么的),如果最大他要N,则数据库中指定为N长,程序中指针为N+1长,即包涵一个\0,这样有很多好处,如果不加\0,很多对于字符串操作的crt函数不能使用,比如strlen等。
[解决办法]