4.(4.0分)设有定义语句char s[10],*p=s;则以下语句正确的是()。 A scanf("%s", p); B scanf("%s", &s); C scanf("%s", &p);
时间: 2024-01-08 14:20:32 浏览: 56
以下语句是正确的:
B) scanf("%s", &s);
解析:
在定义语句char s[10],*p=s;中,s是一个字符数组,p是一个指向字符的指针,指向s数组的首地址。当使用scanf函数读取字符串时,需要使用%s格式控制符,并且需要传入字符数组的地址作为参数。因此,正确的语句是scanf("%s", &s)。
相关问题
假设定义char a[10] 和char *p=a 那么赋值语句正确的是a[10]="Tur C"
那么,赋值语句正确的是:
char a[10] = "Tur C";
或者是:
char *p = "Tur C";
但是不能这样写:
a[10] = "Tur C";
因为数组下标从0开始,a[10]实际上是数组a的第11个元素,而数组a只有10个元素,所以访问超出了数组的范围。
另外,如果你想用指针p来赋值,你需要把它指向一个合法的内存地址,例如:
char *p = a;
这样就可以使用p来访问数组a的元素了。
设有定义:char str[]="ABCD",*p=str;则语句printf("%d\n",*(p+4));的输出结果是
根据给定的定义,char str[]="ABCD",*p=str,我们可以得知str是一个字符数组,其中包含了"ABCD"这个字符串。而p是一个指向字符的指针,指向了str数组的首地址。
在语句printf("%d\n",*(p+4))中,*(p+4)表示对指针p进行偏移,向后移动4个字符的位置,即指向字符数组str中的第5个元素。注意,这里%d是用来格式化输出整型数的,但是*(p+4)表示的是一个字符。
因此,printf("%d\n",*(p+4))的输出结果将是字符'E'的ASCII码值,即69。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)