对于以下程序段,则叙述正确的是(A )。
char s[ ]="china";
char *p;
p = s;
A.*p
与s[0]
相等
B.s
和p
完全相同
C.数组s
的长度和p
所指向的字符串长度相等
D.数组s
中的内容和指针变量p
中的内容相等
A. *p='c' s[0]='c'
B. s是数组,p是指针,两者不一样
C. p
所指向的字符串长度(b不包括'\0'), s的长度=字符串长度+1
D. 数组s内容包括有\0',p只是一个地址
void f(int *p)
{
*p = 5;
}
int main(void)
{
int a, *p;
a = 10;
p = &a;
f(p);
printf(“%d”, (*p)++);
return 0;
}
输出:5
输出的是(*p)++ 这个表达式的值
下面程序段的运行结果是 bBCD
char s[20]= "abcd" ;
char *sp = s ;
puts(strcat(sp+1, "ABCD"+1))
"ABCD"+1 字符串首地址改变了
#include <stdio.h>
int main(){
char s[]="ABCD";
printf("%p\n",s);
printf("%p\n",s+1);
return 0;
}
输出:
000000000062FE10
000000000062FE11