为您找到"

char*p;scanf("%s",p);为啥就是错的,int *s;scanf("%d",s);就是对...

"相关结果约100,000,000个

...malloc(sizeof(char)*20); q=p; scanf(“%s%s”,p,q)

下面假设其程序可以正常运行.(头文件无差错)选A.分析如下:1. 输入 abc def , scanf把abc存入p指向的地址中, 接着空格,然后输入def存入了q指向的地址中.2. 由于q = p 实际上q和p指向的是同一个地址.3. 假定这个相同的地址为bace(base = q = p).4. 即abc def存入的都为base,第一次base...

在char *c; scanf("%s",c); 为什么("%s",c)不正确?

要这样:char c【100】注:框框里的可以改变,主要是看你要输入多少个字符 或者这样 scanf(“%c”,c);就说明只输入一个,本人比较喜欢前者,这是个好习惯。

char *p; p=(char*)malloc(1); scanf("%c,&p");能正确赋值吗

scanf("%c,&p")你这么写不对,p本身就是地址,这么写scanf("%c,p")!

C语言 指针进阶问题;

s[i])) index =i;} return index; //返回的是最长字符串在指针数组中的下标,方便在其他程序里使用}int main(void){int i,n;char *p[10];printf("输入字符串个数(应小于10):");scanf("%d",&n); for(i=0;i<n;i++){p[i] = (char *)malloc(sizeof(char)*100);...

在C语言中char a[ 50];用scanf()输入字符数组加不加&符号,是scanf("%s...

应该是 scanf("%s",a);因为 a 其实是个地址,也就是数组第一个元素a[0]的地址,因此跟 scanf("%s", &a[0]); 是一样的,这样应该清楚一点吧,不懂可追问

语法错误 char a[100]; scanf_s(“%s”,a); 一直不知道问题所在...

这个错误信息说的很明确呀,你的scanf_s的调用还缺少一个参数(没有传递足够的参数)。scanf_s是scanf的安全版本,需要第三个表示数组长度的参数,所以正确的调用应该是:scanf_s("%s", a, 100);

char *a; scanf("%s",a); printf("%s",a); 这样行么?

不行,a没有初始化,也没有分配足够的空间,scanf会把a指针所指内存开始的一段空间都修改,可能那段内存是不允许读写的,造成程序错误或崩溃。改成:char a[100];scanf("%s",a);或者 char *a;a = (char*)malloc(100);scanf("%s",a);就可以往a中写入不超过100个字符了。

c 数组中&问题?char a[]; scanf("%s",a);与scanf("%s",&a);有区别...

你可以用printf("%p %p\n",a+1,&a+1);来检查它们的性质。但在有的编译器下,char a[];scanf("%s",a);与scanf("%s",&a);的效果是一样的,比如VC++6.0。这不能不说是这类编译器的一个bug。C是一种语法比较松散的语言,有不少边缘化的细节没有规定统一的解释,造成了不同的编译器...

C语言 char *p="abcde"; printf("%s",p);正确;;;char *p="abcde"; pr...

语句printf("%s",*p);会出错,因为%s表示输出字符串,而*p则是指向的字符串的第一个字符,请改成printf("%c",*p);则输出a,改成printf("%d",*p);则输出97,原因分析:char *p="abcde",则字符指针p指向字符串,p的值就是字符串首字符的地址,*p就是第一个字符。

c语言:char *p = "hello";printf("%s",*p);为什么执行错误?

char *p = "hello";p是指针,指向hello串的首位置 p表示一个字符,就是h printf("%s",p); //%s表示输出整个串,参数应该是p,地址 printf("%c",*p); //如果是输出一个字符,用%c
1 2 3 4 5 6 7 8 9

相关搜索