‘壹’ c语言 指针变量的初始化问题
变量的初始化就是在定义变量的时候,直接对变量进行赋值操作。初始化的方式一般有如下两种:1、直接对变量进行赋予常量数值进行初始化;2、通过同类型变量进行初始化。举例说明如下://
以下属于第1种初始化方式int
a1=5;
//
整型变量的初始化int
b1[]={1,2,3,4};
//
整型数组的初始化char
str1[]="abcd";
//
字符数组的初始化//
以下属于第2种初始化方式int
a2
=
a1;
//
整型变量的初始化int
b2[4]
=
b1;
//
整型数组的初始化char
str2[4]
=
str1;//
字符数组的初始化char
*p
=
str1;
//
字符指针的初始化
‘贰’ C语言中指针如何初始化为NULL
ptr=NULL,因为是指针的值是空,而不是指针指向地址存储的值为空。
‘叁’ c语言指针初始化
注意了,a只是一个双重指针,不是数组。还有new这个东西是C++中的。C中用malloc分配内存,再初始化。
‘肆’ C语言 如何初始化指针数组 比如char *dd[5]
char 指针,也就是char *类型。 其初始化本质上与其它变量初始化没有什么区别,就是赋予其一个初始化的值。
对于指针来说,在C语言中,就是一个地址。区分初始化情况,有四种表象:
1 初始化为空。即
char * str = NULL;
的形式,NULL在C语言中是特定的空指针,其值为0.在C语言中,以NULL作为指针的一个未生效状态,其本身是一个非法的地址值。
2 初始化为常量字符串地址。
char * str = "test";
常量字符串在运行时会被放在常量空间中,于是这样初始化后,地址是常量空间中的一个地址,对于该地址只能读取,不可写入。即str的值可以改,但是str指向的值是不可修改的。
3 初始化为变量地址。
这里的变量地址,包括全局变量,局部变量的地址,以及通过动态分配申请到的内存地址。
这种情况下,对指针指向的空间是可以修改的。
4 不做初始化。
这种情况在C语言中是允许的。如果为全局变量或静态局部变量,系统默认初始化为0值,即NULL。而对于局部变量,将是一个随机值。所以如果是局部变量不做初始化,在取其指向空间值前,必须为其指定一个合法的值,否则访问会出错。
‘伍’ c语言指针初始化的技巧,最近学c语言的时候总是因为指针没有初始化而使得程序自己停止,那么如果还没想
乖乖的初始化为0吧,告诉你经验你还不听
‘陆’ C语言文件输出指针初始化
FILE*fp_in=NULL,*fp_out=NULL;
if(fp_in)fclose(fp_in);
if(fp_out)fclose(fp_out);
把你那三行,改成我这样的,因为可能没有初始化啊。。。
‘柒’ C语言中的“char指针初始化”是什么意思
char 指针,也就是char *类型。 其初始化本质上与其它变量初始化没有什么区别,就是赋予其一个初始化的值。
对于指针来说,在C语言中,就是一个地址。区分初始化情况,有四种表象:
1 初始化为空。即
char * str = NULL;
的形式,NULL在C语言中是特定的空指针,其值为0.在C语言中,以NULL作为指针的一个未生效状态,其本身是一个非法的地址值。
2 初始化为常量字符串地址。
char * str = "test";
常量字符串在运行时会被放在常量空间中,于是这样初始化后,地址是常量空间中的一个地址,对于该地址只能读取,不可写入。即str的值可以改,但是str指向的值是不可修改的。
3 初始化为变量地址。
这里的变量地址,包括全局变量,局部变量的地址,以及通过动态分配申请到的内存地址。
这种情况下,对指针指向的空间是可以修改的。
4 不做初始化。
这种情况在C语言中是允许的。如果为全局变量或静态局部变量,系统默认初始化为0值,即NULL。而对于局部变量,将是一个随机值。所以如果是局部变量不做初始化,在取其指向空间值前,必须为其指定一个合法的值,否则访问会出错。
‘捌’ c语言指针使用前必须初始化
=NULL初始化 野指针指的是被NEW出来的指针, 但是没有delete掉,停留在内存里,有可能印制内存崩溃的
‘玖’ C语言指针的初始化!!!!
指针指向变量后才能操作,如:int *pt,a;pt=&a;*pt=5;第二个char *i;i="Hello";这样是正确的.
‘拾’ C语言中指针变量的初始化有几种请分别举例并说明。
我觉得有三种吧。
a.赋值一个已有变量的地址
int a;
int *p=&a;
b.新开辟一块内存空间
int *p=(int*)malloc(size(int));
c.赋空值
int *p=NULL;