【发布时间】:2015-10-12 15:33:06
【问题描述】:
将字符串文字的地址分配给字符指针有什么区别吗?
char *ptr = &"Hello";
printf("%s",ptr);
当我打印时,它正确打印了“Hello”。 这类似于将数组的地址分配给指针吗?这种方式分配地址有什么用吗? &"Hello" 返回什么?指向字符的常量指针?
char a[]="Hi";
char *ptr2 = &a;
&a+1 也将打印数组边界之外的地址。但是我们不能使用它来获取它看起来的数组的大小。我尝试打印类似下面的数组内容,但它只打印一个字符。
for(i=0;i<((&a+1)-&a);i++) printf("%c",*ptr2++);
【问题讨论】: