我的背景是C#,我有以下代码(用C语言编写),我需要告诉输出什么:
GetSafeHWnd
有人可以解释一下第4行吗?
我无法理解OnHyperlinkClick
是指#include <stdio.h>
#define N 10
int main()
{
int a[N] = { 3,4 }; //<-- [3][4][0][0][0][0][0][0][0][0]
int *q = a; //<-- some address
char s[N] = "abcdefg";
int k = s[*a] - s[a[*q]]; //<-- what is that mean ?
char *p = s;
a[k] = k;
printf("%d %s\n",k,p+a[k]);
printf("%d %d %d %d %d",q[0],q[1],q[2],q[3],q[4]);
return 0;
}
处的索引s[*a]
吗?但s
不是地址,不是整数。关于*a
答案 0 :(得分:1)
考虑
int k = s[*a] - s[a[*q]];
第一个*a
获得a[0]
处的值3
。
我们知道q == a
,所以*q
与*a
相同,后者又是值3
。 a[3]
的值为0
。
因此,现在我们有s[3] - s[0]
,即'd' - 'a'
,即3
(假定为ASCII编码),是为k
打印的值。
答案 1 :(得分:0)
在没有其余代码的情况下,尚不清楚它是否将完全起作用。例如N是什么?
具体地说,s[*a]
:a
是数组的名称。 *a
与a[0]
相同,因为a
是指向第一个元素的指针。因此*a
是3
,而s[*a]
是s[3]
,它是字符'd'