您的位置:首页 > 其它

char *string = "abc"和char string[] = "abc“的区别

2009-11-19 11:06 316 查看
今天在CSDN上看见有人问了这样的问题:
这是小写转大写的code,用到了函数库strupr:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%s\n", ptr);
return 0;
}
这段code为什么总提示strupr找不到?编写其它code没问题,不应该是函数库的问题?
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

char *string = "abcdefghijklmnopqrstuvwxyz" 这句的意思是所字符串常量"abcdefghijklmnopqrstuvwxyz"的地址赋给指针变量 string ,因为在用库函数strupr()试图利用指针间接改变字符串常是不被允许的。
只要把char *string = "abcdefghijklmnopqrstuvwxyz"换成char string[] = "abcdefghijklmnopqrstuvwxyz", 即可。原因是后者是把字符串常量的值考贝到了string[]数组中,些数组为变量,用针指间接的修改它是合理的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: