本帖最后由 李烨 于 2014-4-15 10:15 编辑
- #include <stdio.h>
- int main( )
- {
- char *p = "abcde";
- printf("%s\n", p);
-
- printf("输入\n");
- char c[20];
- char *p1 = c;
- scanf("%s", c);
- printf("%s\n", p1);
- return 0;
- }
复制代码
********************
上面
char c[20];
char *p1 = c;
scanf("%s", c);
printf("%s\n", p1);
这样可以输出字符串,但是为什么 不能这样写
char *p1;
scanf("%s", p1);
printf("%s\n", *p1);
搞不懂
*************************************解决了 结贴楼
初始化一个字符指针变量,比较两种
第一种:char *a; a = "Hi, you!";
第二种: char *a; scanf("%s",a);
我听说是这样: 第一种方法是很普通很正常的赋值方法,而第二种赋值很危险,因为a的值未定,完全由你输入的字符串决定,这就有可能因为输入字符串太长破坏了正常的程序或者数据。
但是, 在第一种方法里,a的赋值是在定义的下一句执行的,换句话说,a赋值时同样可能出现和第二种相同的危险。
但为什么说第一种是安全的呢?
|