赋值是两个指针指向同一个位置. 而strcpy则是把内容拷贝了一份给另个一指针.
使用常量字符串初始化char指针,或者使用strcpy复制,从语法上我觉得都是可以的。但是,在这个例子中选择了后者,我觉得是有其他考虑的。 因为,ctermid_name是全局的,可能用来传送数据,将str指向这个地址,可能会和其他的函数同步一个内存变量;而使用常量初始化:str="/dev/tty",那么系统会分配地址,这样str的地址是随机...
strcpy(char* a,char *b)是将字符指针b指向的内容复制到字符指针 a所制内容, 如果用 "=" 就相当于b的指针值赋给a了,就不正确了。(函数定义好像是这样的噢)char *strcpy(char *strDest, const char *strScr){ assert(strDest && strScr);char *address = strDest;while(*strDest++ =...
是的 初始化的时候可以 char[4] s="abc";后面赋值只能 strcpy(s, "abc");
若有char ch[10],则下列字符串数组的赋值中不正确的是( )。A. ch="welcome"; B. ch[0]='w'; C. strcpy(ch,"welcome"); D. char ch1[]="welcome";strcpy(ch,ch1); 相关知识点: 试题来源: 解析 A [解析] ch是数组名,代表该数组的地址,是常量,不是变量,不能给其赋值。
以下错误的字符串赋值或赋初值方式是: A. char str1[]=”string”, str2[]=”12345678”;strcpy(str2,str1); B. char str[7]={’s’,’t’,’r’,’i’,’n’,’g’}; C. char str[10] ;str =”string”; D. char *str; str=”string”; ...
下面哪一项是正确的字符串赋值或赋初值的方式 A. char str[10]; str="string"; B. char str[5]={'s','t','r','i','n','g'}; C. char str1[10],str2[]=”china”;strcpy(str1,str2); D. char str1[]="string",str2[]="12345678"; strcpy(str1,str2); 点击查看答案&解析...
因为strcpy函数是将字符串复制到第一个参数里面的。如果这里没有错误的话程序运行时能够通过的。那么可以先看一下p的空间是否足够。由于第一条语句char *p="asfdsfds"这里就相当于将p的空间开辟了8个字节,然后第二条语句是使p指向第三个字符处,那么p最后的空间还有6个字节,而strlen的第二个参数...
还有一种情况是 你定义了一个字符指针char * s = ”string“;这么定以后s本身可以被重新赋值,但是却不能用strcpy函数,因为s指向的是一个字符串常量!!你不能对s指向的常量进行修改。否则会出现程序崩溃的情况。这根上面的情况真好相反。不过大原则是相同的,那就是常量不能被赋值!!
A. char s[3]={“abc”}; 数组下标越界B. char s[10];s=“abc”; 数据不能直接赋值 C. int i=10;char s[i]=“abc”; 数据定义长度不能是变量D. const int i=10;char s[i];strcpy(s,“abc”);正常i为常量,用strcpy赋值,此项正确 解析看不懂?免费查看同类题视频解析查看解答 特别推荐 热...