指针变量定义后需要初始化,否则指针变量中的地址将是一个随机值,这可能导致程序崩溃或出现其他错误。指针变量的初始化可以通过以下两种方式:int a = 10;int* p = &a;这里将指针变量p初始化为a的地址。也可以直接在定义时初始化:int* p = NULL;这里将指针变量p初始化为空指针,表示指向的地址为0。3.操作...
写测试代码的过程中我明白了,同事所说的二叉树遍历算法中所用的左子树和右子树指针不需要初始化,其实是这样的,左子树和右子树指向的必须是二叉树节点类型的结构体指针(你填一个长度相同的指针也可以),而该结构体指针是需要初始化的(见注释2),也就是并没有通过malloc来分配内存,而是将另一个指针的值赋给它 顿...
指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。 例如: int a = 25; int *ptr = &a; int b[10]; int *point = b; int *p = &b[0]; 如果:int...
可以不初始化,但好的习惯还是在指针声明时即初始化为空。
2_1.c中并没有对指针变量p进行初始化,所以会弹出警告,部分编译器可能会弹出error。一定要在实际写代码的过程中避免这种情况,在定义了一个指针变量时,一定要先对其进行初始化。 //代码2_2.c #include <stdio.h> int main() { int a; int *p; ...
c语言结构体指针必须初始化 先说结论 结构体指针需要初始化 结构体指针的成员指针同样需要初始化 结构体变量定义的时候就已经分配了内存空间,而上面两个确没有 struct test{ int i; struct buf *p; } t; //定义结构体t struct buf{ char data[512];...
指针要不要初始化是看做什么的,不过绝大多数情况都应该初始化,不然一不留神用了就麻烦了 hzqst 团子家族 10 要访问必须赋值,如果不访问的话,不赋值也不会出事,如:int *a;if(b){a = b;}你不能说什么情况都必须对a赋值吧 Sunchy321 小吧主 15 唔。。不初始化倒也可以,只要你能保证它被间接访问的...
在c语言中定义指针变量时是可以进行初始化的。指针变量的初始化可以在定义时或定义后进行,也可以在数组或结构体中作为元素进行初始化。对于局部指针变量,如果没有明确初始化的赋值操作,其值是不确定的,因为声明一个变量只是为其分配了一块内存空间,而这块内存中存放的值是不确定的。
比如: char* 的指针解引用就只能访问一个字节, 而 int* 的指针的解引用就能访问四个字节 … 3. 野指针 什么是野指针呢? 概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的) 3.1 野指针成因 1. 指针未初始化 看这样一段代码: ...