88问答网
所有问题
已有声明"int a;char s[80]="123456";",执行语句“strcpy(s+4,"123456");a=strlen(s);”后变量a的值是
答案是10.我想不明白strcpy到底是怎么操作的
1、s+4怎么考虑?
2、s[80]最后究竟变成了什么?
举报该问题
推荐答案 2013-10-04
s是一个内存地址,指向一个char,内容是"1",即初始
字符串
的第一个字符,+4代表地址的偏移,即向后四个或s[4](从0开始)。strcpy函数将串"123456"从s[4]开始往后覆盖,a最终变成“1234123456”,长度为10。strlen函数扫描到空字符"\0"(即s[10])时结束并返回10。虽然数组还未结束但strlen函数不再向后计数。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://88.wendadaohang.com/zd/MtaMcaat1ggBKKaKBcB.html
相似回答
什么是指针?
答:
从语法上看,你只须把指针
声明语句
中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:(1)int *ptr; //指针所指向的类型是
int(
2)char *ptr; //指针所指向的的类型是
char(
3)int **ptr; //指针所指向的的类型是 int *(4)int (*ptr)[3]; //指针所指向的的类型是 int()[...
c语言明天要交
答:
1.A的答案有问题,%应该换成&,则选择C,否则AC都错 2.A 3.C 4.C 5.B 6.A 7.B 8.C 9.有问题 10.A 11.C 12.D
关于C语言变量和数组的
声明
问题
答:
char
s[] =
abc; //s在栈,abc在文字常量区 char *p1,*p2; //栈 char *p3 =
123456;
//123456在常量区,p3在栈上 static
int
c =0; //全局区 p1 = (char *)malloc(10); //p1在栈,分配的10字节在堆 p2 = (char *)malloc(20); //p2在栈,分配的20字节在堆
strcpy(
p1
,
...
C语言的指针是什么
答:
从语法上看,你只须把指针
声明语句
中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:(1)int *ptr; //指针所指向的类型是
int(
2)char *ptr; //指针所指向的的类型是
char(
3)int **ptr; //指针所指向的的类型是 int *(4)int (*ptr)[3]; //指针所指向的的类型是 int()[...
以下正确的程序段是(C)为什么啊?ABD都错哪了? A
char
s[]="
12345...
答:
A) t比s长,要用strncpy方式出问题 B) s没有初始化 D) s,t都是分配到不可写的空间了。作为常量了。写s会导致段错误。
C语言 高手 帮忙 看看。。谢谢
答:
c语言不检查函数参数是否匹配等信息,生成的符号名也唯一。所以也不需要另外说明。c++必须检查函数参数。
C++考试题目求解答解析,小白求解,30分送上!
答:
第5题:
char
** s 是定义了一个变量s,这个s的类型是char指针的指针。因此,*s就是char*,只有它能指向一个字符串字面常量"computer"。第6(姑且就算6吧)题:!x&&i<=5; 分解是这样的 (!x) && (i<=5),!x是逻辑取非,x真则!x为假;x假则!x为真。i<=5就是i小于等于5的判断。&&...
第五届全国ITAT教育工程就业技能大赛C语言程序设计预赛试题及答案谁有...
答:
A)t
++;
B)n1=(n2=(n3=0)); C)k=i= =j; D)a=b,c=1;5. 若有定义:
int
a,b
;char
x,y;并有以下输入数据: 14 22 XxYy (回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是___。 (知识点4.2)A) scanf(“%d %d”
,&a,&
b);x=getchar();y=getchar(); B...
大家正在搜
相关问题
谁有C的二级考试题啊?不是C++的!
请各位走过路过的朋友帮帮忙啊!急需2011年四川计算机二级C...
高分求《C语言》2010年秋学期在线作业一、二的答案
谁有计算机二级考试题(C语言)
一套C语言试题,高手来做做啊
跪求C语言大神解决这些C语言选择题
告诉我关于C语言的一些基础、概论、理论、来源与发展之类的
有关c语言的几道题~