char *a;a是一个字符型指针,因为赋指时没有为a分配内存空间,所以a的指向是不确定的,那么a就有可能指向内存的重要区域 第二种方法,scanf("%s",a);直接将输入的字符串写入a指向的空间,所以极有可能破坏重要数据,引起系统崩溃。如果真要这么用,要先分配空间char *a=(char *)malloc(12);而...
char *a是声明了一个指向char类型的指针变量;\r\n此时,a并没有被初始化,没有被指向任何数据;\r\n所以此时scanf("%s", a)是错误的,a此时只是一个空指针,而且你也不能向一个指针变量中存储非地址类型之外的数据;\r\n这就相当于:\r\n你要帮你朋友(char *a所指向的对象)买某一个...
char *a是声明了一个指向char类型的指针变量;此时,a并没有被初始化,没有被指向任何数据;所以此时scanf("%s", a)是错误的,a此时只是一个空指针,而且你也不能向一个指针变量中存储非地址类型之外的数据;这就相当于:你要帮你朋友(char *a所指向的对象)买某一个类型的商品;这个商品名字叫...
char *a = strA.c_str();
首先,声明数组时如果没有给变量初始化就必须指明数组的长度。其次,即使改成 char a[6];a = "abcde...
当然不一样。char*a是一个指向字符对象的指针,该对象可以是一个字符,也可以是字符串(即字符数组);而char a[]则是定义了一个元素个数不定的字符数组;具体来说,初始化时都可以说:char*a="asdasd";char a[]=asdasd";但是定义之后,*a可以将字符串整体赋给他,而char[]则不行,如*a="...
不行,a没有初始化,也没有分配足够的空间,scanf会把a指针所指内存开始的一段空间都修改,可能那段内存是不允许读写的,造成程序错误或崩溃。改成:char a[100];scanf("%s",a);或者 char *a;a = (char*)malloc(100);scanf("%s",a);就可以往a中写入不超过100个字符了。
首先不能这么初始化,二维数组或指针必须至少给出其中一个维度。另一个才可以根据初始化内容自动确定。然后字符串最后得有'\0'。要输出的话puts(*(a+i))或puts(a[i])
char *a,b[5]; a=b;char *a; a=(char *)malloc(5*sizeof(char)); ... free(a);
char 指针,也就是char *类型。 其初始化本质上与其它变量初始化没有什么区别,就是赋予其一个初始化的值。\x0d\x0a对于指针来说,在C语言中,就是一个地址。区分初始化情况,有四种表象:\x0d\x0a1 初始化为空。即\x0d\x0achar * str = NULL;\x0d\x0a的形式,NULL在C语言中是...