字符串
#include<stdio.h>#include<string.h>
#define Stack_Size 80
int main()
{
char b;
char *a;
int i=0;
do
{
scanf("%s",b);
//strcpy(a,b);
a=b;
printf("%s\n",a);
i++;
}while(getchar()!='\n');
printf("\n");
for(i=i-1;i>=0;i--)
{
printf("%s\n",a);
}
return 0;
}
//为什么上面的printf和下面的printf输出不一样?
a,a,a指向的地址都是一样的,你循环赋值就是不断覆盖上一次的赋值,最后只输出最后一次的赋值,你把指针指向的地址打印出来看下就清楚了 你i只加了一次呀 一次循环里 hunterac 发表于 2021-4-23 07:46
a,a,a指向的地址都是一样的,你循环赋值就是不断覆盖上一次的赋值,最后只输出最后一次的赋值,你 ...
那我应该怎么改?
我只会这么写,我在网上查了下,你指针指向的数组,字符串的数组内存没有定义,所以你的指针指的方向也不能确定#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define Stack_Size 80
int main() {
char *a;
int i = 0;
do {
a = (char *)malloc(sizeof(char) * 32);
scanf("%s", a);
printf("%s\n", a);
i++;
} while (getchar() != '\n');
printf("\n");
for (i = i - 1; i >= 0; i--) {
printf("%s\n", a);
}
return 0;
}
页:
[1]