我有點困惑與下一statment實施:馬爾可夫鏈。實施添加方法
void add(char *prefix[NPREF], char *suffix) {
State *sp;
sp = lookup(prefix, 1);
//addsuffix(sp, suffix);
printf("size of prefix %d",&prefix);
printf("size of prefix %s", prefix + 1);
printf("size of prefix %d \n", &prefix+1);
for (int i = 0; i < NPREF; i++)
printf("%s \n" , prefix[i]);
printf("memmove \n");
memmove(prefix, prefix + 1, (NPREF - 1) * sizeof(prefix[0]));
prefix[NPREF - 1] = suffix;
for (int i = 0; i < NPREF; i++)
printf("%s \n", prefix[i]);
}
mmemove(前綴,前綴+ 1,(NPREF - 1)*的sizeof(前綴[0]));
所以前綴是char類型的指針。在這個術語中,前綴+ 1是指向數組中下一個字符的鏈接,不是嗎?
它是如何正確運作的?我讀過關於memmove和閱讀關於指針,但無法探索這個添加函數behaviore爲我自己。
的printf( 「前綴%d的大小」,&前綴);是錯誤的 – 4pie0
我只是想得到答案。請不要關心我的printf函數。問題不在於它。 –