这会产生不正确的输出。
谁能告诉我我做错了什么。显示前 1,2 或 3 个字符(取决于字符),但其余字符是随机的。
注意:这只是一个学习练习,我知道有更简单的方法可以做到这一点。
int main(int argc, char *argv[])
{
//Assume 1 arg only
int len = strlen(argv[1]);
char *d = malloc (strlen(argv[1])+1);
strcpy(d,argv[1]);
char *x;
x = &d[0];
int j,k;
j = sizeof(char*);
for (k=0;k<len;k++){
printf("Value: %c\n\n", (*x + (k*j)));
}
最佳答案
您应该使用等于1
的sizeof(char)
;试试这个:
j = sizeof(char);
for (k = 0; k < len; k++ ) {
printf("Value: %c\n\n", *(x + k * j)); // j equals to 1
}
注意:*(a + b)
等于a[b]
或b[a]
关于c - 增加枚举 char[ ] 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19064868/