为您找到"

main{char *p,str[20];scanf("%s",p);scanf("%s",str);printf("%s",p...

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

main{char *p,str[20];scanf("%s",p);scanf("%s",str);printf("%s",p...

str是char数组,自然可以存储字符串,因为字符串也是字符的组成,不过在字符串最后有一个结束字符'\0',所以你按照字符串输出的意思就是,从当前地址输出,直到遇见结束标识符停止,代表把字符串输出完全。

...int main() { char str[20]; char*p=str; printf("input string:\n...

char *p=str//是指定义一个字符指针,然后指向str[20]数组的首地址,它可以表示成 //char *p;p=str;而scanf函数需要的是存放字符串的首地址,当然就用指针p就好了啊

C语言中char str[20], *p=str; scanf(“%s”,p[2]);是正确的吗?谢谢...

6.str+2 因为这是字符串数组可以这样写,如果是数字数组,就是:p+2;p[2],&str[2]

...char str〖20〗,*p=str; scanf(“%s”,p〖2〗);

scanf("%s",&str[2])第二个参数正确,&str[2]是一个内存地址,指向的内存是str[20]这块内存缓存区的第3个字符所在的地址,因为前面有一个&取值运算符。

5.以下正确的程序段是___.

①答案:C ②原因:A. char str[20]; scanf("%s", &str[2]); // 从str[2]地址处开始填入输入数据,前面0~1元素的数据不确定会导致后面不能完整用str索引 B. char str[20],*p=str; scanf("%s", p[2]); //p[2]不是地址 C. char str[20]; scanf("%s",&str...

一道C语言选择题:以下正确的程序段是:()

B:p做为一个指针,没有初始化.记住,指针一定要初始化后才能使用!C:str[2]的意思其实是 *(str + 2),所以&str[2]其实就是&*(str + 2),也就是str + 2,还是个地址,所以是正确的.D. char str[20],*p=str; scanf("%s",p[2]);:p[2]代表 *(p+2),代表第三个字符了 ...

C语言以下不正确的程序段是

char str[20]这种方式定义时,编译器会给它分配具体的地址,比如100-120号地址为str这个字符串所用。用char *p这种方式定义时,p是指向字符串的地址,这个p指向的地址是随机的,没有给p初始化的话(初始化:p= &str,就是给p赋具体的地址值),那么你再用scanf("%s",p)的话有可能造成危险,...

C语言中 scanf("%d",&a[j][k]); 要输入一串数字 该怎么输入?

例如:include <stdio.h> void main(){ char *p, str[20];p = new char[20];scanf("%s", p); /*从健盘输入字符串*/ scanf("%s", str);printf("%s\n", p); /*向屏幕输出字符串*/ printf("%s\n", str);} (2) 可以在格式化字符串中的"%"各格式化规定符之间加入一个...

char str[20]; scanf("%s",&str[2]);对吗

是对的没错,但是这样做是从str[2]开始写入.str[0]和str[1]是随机值.除非你手动给这两位赋值,否则输出也只能从str[2]开始.不然结果不可预知.

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);...
1 2 3 4 5 6 7 8 9

相关搜索