c - 增加指向 char 的指针的左值?

标签 c pointers char

我的问题很简单:

假设你有这个:

char *chrptr = "junk";

想象一下,*chrptr 会指向j。有没有办法将当前字符 j 递增到下一个字符,在本例中为 k?我不想转到下一个字符,我想增加当前指向的字符。

我是 C 的新手,我试过的方法:(*chrptr)++ 不起作用。

最佳答案

根据您的编辑,您似乎想要修改字符串,您不能使用常量字符串来做到这一点,实际上您可以,但这种行为是未定义的。所以你需要将定义更改为非常量字符数组:

//This initializes a 5 element array including the null byte at the end
char chrptr[] = "junk";
//now you can modify that
chrptr[0]++;
//or equivalently 
chrptr[0] +=1;
chrptr[0] = chrptr[0]+1;

关于c - 增加指向 char 的指针的左值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024220/

相关文章:

c++ - 返回前后字母的程序

谁能解释一下这段C代码吗?

c - 如何找到谁将 sigterm 信号发送到我的进程或我的进程组?

c - #define ALLOC(p,n) (p*)malloc(sizeof(p)*n))

c - 如何使用双指针进行深拷贝?

arrays - 附加到数组后我无法修改该项目

c++ - 静态变量会减慢应用程序的启动时间

C 风格的 printf/scanf

c - 字符数组和整型数组的区别

c - 有没有办法将 void *buf 转换为 char?