LTC*_*ipp 3 c arrays string generic-programming
我想要做的是取一个指向的字符串argv[1]并将其复制到另一个数组,但我希望这个新数组是const.
有没有办法将数组声明为const并使用argv[1]同一行的内容初始化它?
我遇到的问题是我无法将其声明为const然后在下一行使用strcpy或某些此类函数复制字符串.那是无效的.
什么是最好的行动方案?
你可以这样做:
#include <stdio.h>
int main(int argc, char *argv[])
{
const char *argument = argv[1];
printf("%s\n", argument);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
利用参数[0]与*参数基本相同的事实.但要小心!
int main(int argc, char *argv[])
{
const char *argument = argv[1];
printf("%s\n", argument);
argument[2] = 'z'; //ERROR
printf("%s\n", argument);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
以上情况会导致错误.但...
int main(int argc, char *argv[])
{
const char *argument = argv[1];
printf("%s\n", argument);
argv[1][2] = 'z'; //same memory location but no errors
printf("%s\n", argv[1]);
printf("%s\n", argument);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
没有错误....实际上在最后一个printf中你可以看到你的字符串已被编辑.
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |