C指针用法纠错题-创新互联

总结改错题常见问题  1.字符串的赋值

字符数组名和字符指针大部分情况下使用没有差别,但是——

创新互联建站是一家专业提供诸城企业网站建设,专注与网站设计制作、网站制作、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

其他资讯