scanf("%s",&s) 和 scanf("%s",s)两个都对吗?

搭楼再问一个
typedef (int*) INT1
#define INT2 (int*)
有什么区别。

看s是什么类型啊,后面的要求是字符型的地址
如果s是字符数组名,后一种对,前一种错
如果s是字符变量名,前一种对,后一种错追问

%s不是字符串么。

追答

是啊,C中没有字符串类型,只有字符数组类型啊
前者是类型定义,后面有INT 1 x, y;则x 和y都是int *
后者是文本代换,后面有INT2 x,y; 则代换成int *x, y;则y不是int * ,而是int类型了

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-06
如果你用字符数组定义的(如char s[10]),其实是一样的。
&s和s指的同一个地址,
如果是字符指针动态分配空间(char *s;s=malloc(10));,这是不一样的。
可以加下面这句代码验证
printf("%p,%p\n",s,&s);本回答被提问者采纳
相似回答