0
1. char *names[5]={"Web","Security","Software","Hello","Language"};
2. char names[5][30]={"Web","Security","Software","Hello","Language"};
这两个有什么区别?char str [m] [n]和char * str []当传递到函数时的区别
一个我知道的是,(1)第一个可以具有期望的字符串的长度,而(2)第二个可以有支路29个字符“\ 0”
但我很困惑什么区别当他们被传递到功能,以及他们如何通过?
请详细说明一下我新的C++ ....
那么第一个不编译,因为字符串文字'const'。 – Quentin
第一个是分配'5 * sizeof(char *)'字节,它在每个索引处存储一个指针,而第二个分配'5 * 30'字节并在那里保存字符串。附:这是C. – rev
警告:不推荐将字符串常量转换为'char *'[-Wwrite-strings] |它编译了但是有了这个警告,能否请你解释一下Quentin – CodeLearner