我不知道这是什么语法strcpy()
确实在65行和66:`strcpy(x + 1,SEQX)`做了什么?
24 #define SEQX "TTCATA"
25 #define SEQY "TGCTCGTA"
61 M = strlen(SEQX);
62 N = strlen(SEQY);
63 x = malloc(sizeof(char) * (M+2)); /* +2: leading blank, and trailing \0 */
64 y = malloc(sizeof(char) * (N+2));
65 strcpy(x+1, SEQX); /* x_1..x_M now defined; x_0 undefined */
66 strcpy(y+1, SEQY); /* y_1..y_N now defined; y_0 undefined */
我知道这是抄袭SEQX
和SEQY
到x
和y
,但我不明白什么是+1
吗?这种类型的操作的正式名称是什么?
该名称可能是“指针算术”。 'x + 1'表示数组元素的地址,它是'x'地址之后的数组元素的地址。 –
@MattMcNabb所以'x'是一个指针吗? – olala
如果这是所有提供的代码,那么'x [0]'和'y [0]'是垃圾。它几乎看起来像听起来像缺少一个赋值到'x [0]'中,像'x [0] ='''(初始化为一个空格)。 – jww