C语言如何用指针的方法 交换一个二维字符数组中的两个元素

比如我定义一个字符串a[10][20] = {"abcd", "efgh"........}
根据比较字符串进行降序排序
此时printf("%s, %s", a[0], a[1])的结果是abcd, efgh
想用指针方式交换这两个字符串的地址使得
printf("%s, %s", a[0], a[1])的结果变成efgh, abcd
注意是指针方式!!!

这个没有办法。因为数组的数组名虽然本质上是一个指针,但它是一个指针常量,也就是说a[0]是指针没错,但a[0]=a[1]这样是错误的。因为无法对a[0]重新赋值。所以你说的这种没有办法实现,这是C/C++的规则限定的。除非你用指针p,q来代替a[0]、a[1]。追问

如果用指针指向二维数组呢

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答