作者按:无参考价值。
今天在看紫书时候,发现作者在WERTYU题目和Palindrome题目中定义了以下三个变量:
char s[] = "`1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./"
const char* rev = "A 3 HIL J M O 2TUVWXY51SE Z 8 ";
const char* msg[]= {"not a palindrom", "a regular palindrom", "a mirrored string", "a mirrored palindrom"};
并分别使用了s[i]
、rev[i]
和msg[i]
,导致我觉得char []和char* 的作用相同。参考文章:【C/C++】对char* 和 char[]区别的一些理解.
因为本身对char* 是可以修改它的值的,所以定义的时候前面加了const。另外,作者还说msg是字符串数组,也就是一个二维字符数组。
PS:由于字符串的本质是数组,它也不是“一等公民”,只能用strcpy(a, b)
,strcmp(a, b)
, strcat(a, b)
来执行“赋值”、“比较”和“连接”操作,而不能用“=”,“==”,“<=”,“+”等运算符。上述函数都在string.h中声明。——《算法竞赛入门经典(第二版)》
网友评论