可以:
#include <stdio.h>
int main(void)
{
char str[8] = {0};
str[0] = *"jiang";
printf("%s\n", str);
return 0;
}
输出结果是:
j
2012/5/16 更新
补充一个例子(正确):
#include <iostream>
using namespace std;
int main(void)
{
cout << "0123456789"[5] << endl;
return 0;
}
输出结果是:
5
2012/7/21
1、通过:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char **argv)
{
char str[10];
char *p = str;
strcpy(p, "wwwww");
cout << p << endl;
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char **argv)
{
char str[1];
char *p = str;
strcpy(p, "w"); //Debug Error: Stack around the variable 'str' was corrupted
// "w"占两个字节,而str是一个字节的字符数组
cout << p << endl;
return 0;
}
这个我感到奇怪,strcpy的第一个参数同样是指针,与第一个程序比较,难道这个p记录的信息还挺多?还扯上str了?还是strcpy本身就要检查?待解答。
3、通过:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char **argv)
{
char *p = NULL;
p = "aaaaa";
cout << p << endl;
return 0;
}
"aaaaa"在文字常量区上,注意这里若用
strcpy(p, "aaaaa");
将出现运行时错误(编译通过),非法访问内存区域。
本文通过几个具体的C++示例程序详细介绍了如何使用指针和数组进行字符串操作,包括字符赋值、输出指定位置的字符及字符串复制等内容,并探讨了在不同情况下可能遇到的问题及其原因。
3086

被折叠的 条评论
为什么被折叠?



