您的位置:首页 > 编程语言 > C语言/C++

通过下标访问字符串的一点感想

2017-03-05 16:55 183 查看
给定一个char * str指针和一个char srr[]字符数组:

char * str = "abcdefg";
char srr[] = "abcdefg";


str是指向字符串常量的指针,也就是char * str = “abcdefg”中的“abcdefg”是一个字符串常量,只能通过下标如str[1]来访问,不能对str[1]进行赋值操作;

srr是字符数组,可以通过下标如srr[1]访问字符数组中的第2个字符,也可以对srr[1]进行赋值。

验证程序:

#include <stdio.h>

int main()
{
char * str = "abcdefg"; char srr[] = "abcdefg";

printf("str[1] = %c\tsrr[1] = %c\n", str[1], srr[1]);

str[1] = 'z'; //赋值报错
srr[1] = 'z';
printf("str[1] = %c\tsrr[1] = %c\n", str[1], srr[1]);

return 0;
}


在vs2015上单步调试到 str[1] = ‘z’;时报错,报错信息如下:



这是由于对字符串常量中的str[1]进行了赋值操作导致,将str[1] = ‘z’;注释掉再次运行:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C-C++
相关文章推荐