C语言指针的那些事(一)
2015-06-19 16:21
288 查看
C语言之所以能有这么旺盛的生命力,与指针是分不开的。事物一般都是两面性的,C语言可谓是成也指针,败也指针(因为指针太厉害,以致于初学者很容易出错),下面我就谈谈自己对指针的理解。
普通指针是个变量;
因为,指针是个变量,所以指针就类似一个盒子,可以放不同的物品(所指向的变量的地址),而指针之所以能够指向变量就是通过存放变量地址来实现的,由于指针也是变量,所以在开辟内存时会给它分配一个随机值,这种指针是不安全的。比如说,假设指针刚好指向了你保存QQ密码的那部分内存,然后,要是你对它的值进行的修改,那么,你可能将无法登陆,这种指针俗称“野指针”,所以,我们最好每次给指针初始化NULL。
例如实现指针p指向a变量,具体操作是,指针变量p,保存a变量的地址:
int *p = NULL;
int a = 3;
p = &a;
假设,你已经实现了让指针p指向了a,那么,你就可以通过两种方式来访问a变量了:1、通过a本身(废话);2、通过指针p;
例如:我想改变a的值,就有两种操作:1、a = 5;2、*p = 5;
如果你已经可以理解并掌握指针的这个过程了,那么请看C语言指针的那些事(二);
普通指针是个变量;
因为,指针是个变量,所以指针就类似一个盒子,可以放不同的物品(所指向的变量的地址),而指针之所以能够指向变量就是通过存放变量地址来实现的,由于指针也是变量,所以在开辟内存时会给它分配一个随机值,这种指针是不安全的。比如说,假设指针刚好指向了你保存QQ密码的那部分内存,然后,要是你对它的值进行的修改,那么,你可能将无法登陆,这种指针俗称“野指针”,所以,我们最好每次给指针初始化NULL。
例如实现指针p指向a变量,具体操作是,指针变量p,保存a变量的地址:
int *p = NULL;
int a = 3;
p = &a;
假设,你已经实现了让指针p指向了a,那么,你就可以通过两种方式来访问a变量了:1、通过a本身(废话);2、通过指针p;
例如:我想改变a的值,就有两种操作:1、a = 5;2、*p = 5;
如果你已经可以理解并掌握指针的这个过程了,那么请看C语言指针的那些事(二);
相关文章推荐
- C++为类中提供类成员的初始化列表(★firecat推荐★)
- CTime 与 CString 转换
- 自制工具:CSV代码生成器:自动生成CSV文件对应的C++实体类和字段类型解析代码
- C++中静态成员函数访问成员变量问题
- WinCE下DLL的加载和调用
- C语言-EOF和feof()判断文件结尾的区别
- C++回调函数误区
- 文件操作
- 深度探索C++对象模型-指向Data Members的指针
- 不用C++模版实现queue
- C语言-一个fopen函数中未使用二进制模式(b)引发的血案
- c++ 动态判断基类指针指向的子类类型(typeid)
- [LeetCode] Single Number II
- C++ 自增运算符的重载以及理解
- 大约C++ const 全面总结
- C语言命令行处理
- C语言JSON-RPC
- const在C语言和C++中的区别
- 第16周《C++语言基础》程序阅读——异常处理和命名空间
- C++中的单例模式