我想要做的是设置指针的值#34;指向" at to char,就像你可以将char设置为指针"指向"于:
catch
但是当我尝试这个时:
char = (pointer - int);
我收到错误
(pointer - int) = char;
我做错了什么?
答案 0 :(得分:0)
假设您尝试将字符位置设置在指针所指向的位置的左侧,您需要这样的内容:
char string[] = "Hello, world!";
printf("%s\n", string); /* original string */
char *pointer = &string[12]; /* points to the ! */
int offset = 5; /* w is 5 to the left of ! */
*(pointer - offset) = 'W'; /* changes world to World */
printf("%s\n", string); /* see the result */
如果这是你想要做的事情,你可能也想知道这类事情的核心是数组和指针之间的对等"在C.你也可以将改变字符的表达式写为
pointer[-offset] = 'W'; /* changes world to World */
这将完全相同。 (实际上,根据定义,对于任何数组或指针p
以及任何偏移o
,下标表达式p[o]
都完全等同于*(p + o)
。)