c语言字符串数组怎么赋值?
使用 这种方式,,我觉得应该是a[0]是0 a[1]是1 ......然后每次的a[0]应该都是0 为什么打印的时候 a[0] 一直在变啊
你的问题是(你没想明白)
你的s是局部变量,它的地址在循环中是不变的(虽然是每次都是重定义的,但编译器会把它栾成一个)
所以虽然,你的a[0]....a[9]都是重新赋了s的地址,实际都是同一个,每个循环它的值都会改变的
你要使你的a[0]不变,而a[i]不同,这样可以
for(i=0;i<10;i++)
{
char *s=malloc(2*sizeof(char));
s[0]='0'+i;
s[1]=0;
a[i]=s;
printf("%s %s
",a[0],a[i]);
}
热门标签: