设有以下语句: char str1[]="string",str2[8],*str3,*str4="string"; 请给出解释谢谢
来源:百度知道 编辑:UC知道 时间:2024/05/26 12:05:58
设有以下语句:
char str1[]="string",str2[8],*str3,*str4="string";
则 【】 不是对库函数strcpy的正确调用,此库函数用业复制字符串。
A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2");
C) strcpy(str3,"HELLO3"); D) strcpy(str4,"HELLO4");
char str1[]="string",str2[8],*str3,*str4="string";
则 【】 不是对库函数strcpy的正确调用,此库函数用业复制字符串。
A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2");
C) strcpy(str3,"HELLO3"); D) strcpy(str4,"HELLO4");
明显是D,str4指向字符串常量
严格说,C属于危险行为
最佳中提出的:str4指向了一个字符串,是不能更改的。这个在这道题目中是不需要考虑的。为什么他说不能更改?因为str4更改后,string这个字符串所在的存储空间因为没有被其他变量所指向或被定义,所以string所在内存会被释放,也就是消失,这个在编程中会造成数据丢失,应该避免,但是在这个题目中,是无妨的。
strcpy(str,"AAA")函数的作用就是把字符串AAA复制到str所指向的存储空间。C选项str3是个指针变量,因为定义中没有给他赋值,它没有所指向的存储空间。所以C选项这个是错误的。
个人认为是C,因为*str3之声明了一个指针,并没有对指针分配内存,没有分配没存就进行strcpy操作应该会出错
请问这个语句:char string[10];char* str1="0123456789";strcpy(string, str1);有什麽问题?
设有定义语句“char s[]=”123”;”,则表达式“s[3]”的值是________。
设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是:
我想问一下字符串比较函数int strcmp(char *str1,char *str2)的问题?
编写一个程序完成字符串的复制void fun(char str1[ ],char str2[ ])
void fun(char str1[ ],char str2[ ])一个程序完成字符串的复制
20.设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是 × 正确答案为A
设有“char s[]="Program",*p=s;”,则p[5]与s[5]各是什么意思?
char *p =new char[..]
vb中这条语句 TxtTarget=TxtTarget&UCase(Char) 里的&起什么作用