C指针用法纠错题-创新互联
总结改错题常见问题
1.字符串的赋值
本文名称:C指针用法纠错题-创新互联
本文链接:http://cdiso.cn/article/ccgdio.html
字符数组名和字符指针大部分情况下使用没有差别,但是——
创新互联建站是一家专业提供诸城企业网站建设,专注与网站设计制作、网站制作、H5技术、小程序制作等业务。10年已为诸城众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。①字符数组名不能被赋值
②字符指针只存地址,不存内容
2.变量的生命周期调用其他函数进行分配空间时要注意,在其他函数里申请的变量在被调函数结束后就没了。除非malloc
3.C语言传参全部是按值传递想通过其他函数改一个变量的值,要传指针
Q1
已知char * strcpy(char * s1,const char * s2)的功能是:
将s2指向的字符串拷贝到s1指向的字符数组中,返回s1的值。
以下代码对吗?
char * r;
char s[]=“hearts”;
strcpy (r, s);
Q2
以下代码对吗?
int main(void)
{
char * string1, string2[6]={'\0'};
string1="hello";
string2="hello";
printf("%s\n",string1);
printf("%s\n",string2);
return 0;
}
Q3
以下代码对吗?
void GetMemory(char *p)
{
p = malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
Q4
以下代码对吗?
char * GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
Q5
以下代码对吗?
char * GetMemory(void)
{
char * p= "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
Q6
以下代码对吗?
char * * f(int length)
{
int i;
char * a[5];
for(i=0;i<=4;i++)
a[i]=malloc(sizeof(char)*length);
return a;
}
main()
{
char * *ptr;
int i;
ptr=f(100);
for(i=0;i<=4;i++)
gets(*(ptr+i));
for(i=0;i<=4;i++)
puts(*(ptr+i));
system("pause");
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文名称:C指针用法纠错题-创新互联
本文链接:http://cdiso.cn/article/ccgdio.html