It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center。
7年前关闭。
一个朋友帮我编写了这段代码,但我不知道它是如何工作的。第5行中的(* pp-97)* 4基本上是char 110的大小,因此(110-97)* 4或pp的扫描值?谢谢
也可以写为
这可以写成
因此从块
7年前关闭。
一个朋友帮我编写了这段代码,但我不知道它是如何工作的。第5行中的(* pp-97)* 4基本上是char 110的大小,因此(110-97)* 4或pp的扫描值?谢谢
char *pp =(char*)malloc(110);
printf("Enter text: ");
scanf("%s", pp);
*pp = *(pp + n);
int f = (*pp - 97)*4;
最佳答案
请注意,*pp
等效于pp[0]
,通常*(pp + n)
等效于pp[n]
,因此
*pp = *(pp + n);
也可以写为
pp[0] = pp[n];
,它将偏移量为char
的n
复制到偏移量为0的第一个char
。int f = (*pp - 97)*4;
这可以写成
int f = (pp[0] - 97)*4;
因此从块
'a'
所指向的第一个char
中减去97(ASCII值pp
),然后将该差值乘以4。关于c - *(a + b)和(* a + b)有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13515965/
10-13 04:25