写测试代码的过程中我明白了,同事所说的二叉树遍历算法中所用的左子树和右子树指针不需要初始化,其实是这样的,左子树和右子树指向的必须是二叉树节点类型的结构体指针(你填一个长度相同的指针也可以),而该结构体指针是需要初始化的(见注释2),也就是并没有通过malloc来分配内存,而是将另一个指针的值赋给它 顿...
可以不初始化,但好的习惯还是在指针声明时即初始化为空。
指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL)3)有多级指针,但是没有多级引用,只能有一级引用。4)指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时引用的变量值加1)5)sizeof 引用得到的是所指向的变量(对象)的大小,而sizeof 指针得到的是指针本身的...
指针要不要初始化是看做什么的,不过绝大多数情况都应该初始化,不然一不留神用了就麻烦了 hzqst 团子家族 10 要访问必须赋值,如果不访问的话,不赋值也不会出事,如:int *a;if(b){a = b;}你不能说什么情况都必须对a赋值吧 Sunchy321 小吧主 15 唔。。不初始化倒也可以,只要你能保证它被间接访问的...
结构体指针需要初始化 结构体指针的成员指针同样需要初始化 结构体变量定义的时候就已经分配了内存空间,而上面两个确没有 struct test{ int i; struct buf *p; } t; //定义结构体t struct buf{ char data[512]; struct buf *prev; struct buf *next; ...
在c语言中定义指针变量时是可以进行初始化的。指针变量的初始化可以在定义时或定义后进行,也可以在数组或结构体中作为元素进行初始化。对于局部指针变量,如果没有明确初始化的赋值操作,其值是不确定的,因为声明一个变量只是为其分配了一块内存空间,而这块内存中存放的值是不确定的。什么是指针?C...
在C语言里可以定义指针变量,这个指针变量里可以存储内存的地址,一个32位的无符号整型值.它就像普通的int, double型变量一样.以下面为例说明:int iMax = 1; int * pMax = NULL;我们定义了一个int型的变量iMax 和一个int型的指针变量pMax,并对他们进行了初始化.这里iMax的值为1; pMax的值为NULL,也就是...
比如: char* 的指针解引用就只能访问一个字节, 而 int* 的指针的解引用就能访问四个字节 … 3. 野指针 什么是野指针呢? 概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的) 3.1 野指针成因 1. 指针未初始化 看这样一段代码: ...
不过这种情况,系统一般会驳回程序的运行,此时程序会被「中止」并「报错」。要是万一中奖的话,覆盖到一个合法的地址,那么接下来的赋值就会导致一些有用的数据被「莫名其妙地修改」,这样的bug是十分不好排查的,因此使用指针的时候一定要注意初始化。 指针和数组...