C语言指针的理论知识,填空,因为我没有答案所以请大神给出填空答案,有的真不知道填什么,理论不过关啊

填空题.
1、 若有定义:char ch;
(1) 使指针p可以指向变量ch的定义语句是__________。
(2) 使指针p指向变量ch的赋值语句是__________。
(3) 通过指针p给变量ch读入字符的scanf函数调用语句是__________。
(4) 通过指针p输出ch中字符的语句是__________。
2、 如有下图所示五个连续的int类型的存储单元并赋值如图,且p和s的基类型皆为int,p已指向存储单元a[1]。

a[0]

a[1]

a[2]

a[3]

a[4]

10

20

30

40

50

P↑

(1) 通过指针p,给s赋值,使其指向最后一个存储单元a[4]的语句是_________。
(2) 通过移动指针s,使之指向中间的存储单元a[2]的表达示_________。
(3) 已知k=2,指针s已指向存储单元a[2],表达示*(s+k)的值是_____。
(4) 指针s已指向存储单元a[2],不移动指针s,通过s引用存储单元a[3]的表达示_________。
(5) 指针s指向存储单元a[2],p指向存储单元a[0],表达示s-p的值是_________。
(6) 若p指向存储单元a[0],则以下语句的输出结果是_________。
for(i=0;i〈5;i++〉
printf(“%d”,*(p+i));
printf(“\n”);
3、以下程序段的输出结果是_______。
char s[20]=“goodgood!”,*sp=s;
sp=sp+2;
sp=“to”;
puts(s);
判断题。
1、 char *p[10];定义了一个指向字符数组的指针变量。
2、 将指向函数的指针作为函数的参数,虽然可以提高效率,但是容易造成混乱,所以不符合结构化程序设计的原则。
3、 数组名实际上是此数组的首地址,所以数组名相当于一个指针变量。
4、 若定义数组a[2][3],则a+1和*(a+1)完全等价。
5、 函数的形参为一个数组,则调用此函数时将数组名作为对应的实参。

第1个回答  推荐于2017-10-04

追问

1,(3)p前面不用加*吗,为什么啊
1,(4)双引号里面就一个c吗,什么意思?

追答

(3)前面不用加*!因为p存放的是ch的地址!*p代表的是p指向的那个变量的值,即ch变量
(4)那是我打少了一个% 不好意思-_-||

本回答被提问者采纳
相似回答