
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
“这个世界都是由代码组成的。”这是程序员的格言,随着互联网的快速发展,世界已经进入了电子信息时代,而程序员也成为了新时代产业下所产生的火热职业,现在大学都会开放一门变成的基础课,C语言。这对于大学生逻辑思维具有很棒的好处,同样对于要入门编程大海的未来的程序员,也是一个很棒的入门机会,今天烟台C#培训小编就为大家带来,C语言程序设计基础,希望大家喜欢!
指针变量的初始化
定义变量后不进行初始化,会默认存储垃圾数据;
指针变量必须存储合法取得的地址;
int a; //1.
int *pa = &a;
1.用变量地址作为初值时,该变量必须在指针初始化之前已声明过,且变量类型应与指针类型一致;
2.可以用一个已有合法值的指针去初始化另一个指针变量;(没找到例子)
3.不要用一个内部(局部)非静态变量去初始化 static 指针。(局部变量消亡后原本的地址就没有了意义,或者存储了其他数据)
指针变量的赋值
向指针变量赋的值必须是地址常量或变量,不能是普通整数,
例如:
1.通过地址运算“&”求得已定义的变量和对象的起始地址;
2.动态内存分配成功时返回的地址.
允许定义或声明指向void类型的指针。该指针可以被赋予任何类型对象的地址,但只用来存放地址,不能进行指针运算.
void *general;
//void类型指针的使用
int main() {
//!void voidObject; 错,不能声明 void 类型的变量,编译器无法分配存储区域大小
void *pv; //对,可以声明void类型的指针
int i = 5;
pv = &i; //void类型指针指向整型变量
int *pint = static_cast<int *>(pv); //void指针转换为int指针
cout << "*pint = " << *pint << endl;
return 0;
}
P.S.空指针
int *p=0;
double *q=NULL; //这两种为旧时代的用法,有隐藏 BUG
float *a=nullptr;//C++11标准后的安全空指针