我的问题很简单:
假设你有这个:
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/