C-030.指针的定义和初始化
2015-12-02 21:30
232 查看
内存中最小的存储单元:字节,每一个字节在内存中都有一个编号,这编号就是指针
指针:内存地址
有了指针你就有了打开这块内存钥匙,就可以操作这一块内存
指针变量:存放内存地址的变量
定义指针的格式:指针所指向数据类型 * 指针变量名称;
在的定义变量时候,*是一个类型说明符,说明定义这个变量是一个指针变量
在不是定义的变量的时候,*是一个操作符,访问(读、写)指针所指向的那块存储空间
int main(int argc, const char * argv[]) {
//1.先定义指针,再初始化
int a = 10;
int *p;
p = &a;
*p = 20; //这里的*号是操作符
printf("%d\n",a);//打印 20
//2.定义同时初始化
int *p1 = &a;
*p1 = 30;
printf("%d\n",a);//打印 30
return 0;
}
指针的初始化:
注意点:
1、只有定义没有初始化指针里面是一个垃圾值,这时候我们成为这个指针为野指针
2、如果操作一个野指针
2.1 程序崩溃
2.2 访问不该你访问存储,操作潜在逻辑错误
3、不可以使用整形常量赋值一个指针变量
因为内存是操作系统分配的,不是自己随便取的
4、什么类型的指针,只指向什么类型的变量
5、多个指针可以指向同一变量
6、指针的指向是可以改变的
int main(int argc, const char * argv[]) {
// 不可以使用整形常量赋值一个指针变量
// int *p3 = 12345678;//不能这么写,因为内存是操作系统分配我们的,不是我们随便取的
return 0;
}
指针:内存地址
有了指针你就有了打开这块内存钥匙,就可以操作这一块内存
指针变量:存放内存地址的变量
定义指针的格式:指针所指向数据类型 * 指针变量名称;
在的定义变量时候,*是一个类型说明符,说明定义这个变量是一个指针变量
在不是定义的变量的时候,*是一个操作符,访问(读、写)指针所指向的那块存储空间
int main(int argc, const char * argv[]) {
//1.先定义指针,再初始化
int a = 10;
int *p;
p = &a;
*p = 20; //这里的*号是操作符
printf("%d\n",a);//打印 20
//2.定义同时初始化
int *p1 = &a;
*p1 = 30;
printf("%d\n",a);//打印 30
return 0;
}
指针的初始化:
注意点:
1、只有定义没有初始化指针里面是一个垃圾值,这时候我们成为这个指针为野指针
2、如果操作一个野指针
2.1 程序崩溃
2.2 访问不该你访问存储,操作潜在逻辑错误
3、不可以使用整形常量赋值一个指针变量
因为内存是操作系统分配的,不是自己随便取的
4、什么类型的指针,只指向什么类型的变量
5、多个指针可以指向同一变量
6、指针的指向是可以改变的
int main(int argc, const char * argv[]) {
// 不可以使用整形常量赋值一个指针变量
// int *p3 = 12345678;//不能这么写,因为内存是操作系统分配我们的,不是我们随便取的
return 0;
}
相关文章推荐
- Windows GDI+坐标系统详解(一)
- 代码中设置view的大小和位置
- private, public, protected 访问标号的访问范围之C++篇
- java(6)--事件监听机制
- [JSP]标准标签、<jsp:include、forward、param、useBean、setProperty、getProperty>
- 第一个 IronPython 的 ASP.NET 程序
- Ubuntu 修改环境变量
- JavaScript、JSP、Java及javaEE
- Scrum Meeting 1-20151201
- 第一天 简介、安装和目录管理命令
- redis源码阅读(一):开始
- Android-Property 动画自定义TypeEvaluator
- APUE:信号 - 未决信号与信号阻塞
- ubuntu14.04 如何删除客人会话
- Spring IOC容器基本原理
- HDU 3085 Nightmare Ⅱ(双向BFS)
- doGet与doPost的区别
- 人脸识别必读的N篇文章
- Clear Screen and remove objects in RStudio
- 【Java小项目】打飞机