C/C++基础知识备忘录(一)----指针
2012-11-22 13:56
387 查看
1. 指针变量包含两个属性:指向的地址和地址所指向的内存里存储的数据类型。
和指针相关的易混淆的值有三个:指针的值(即指针指向的地址);指针本身的地址;指针指向的地址所存储的值。下面以图和代码说明:
上述输出如下:
指针变量本身就是一个地址值,前面加&表示取这个指针本身的地址,&q代表指针变量存储在哪,即它自身的内存地址;q代表指针指向的地址,相当于指针变量的值;*q即指针指向的地址存储的值。
2. int *p = NULL;与 int *p; *p=NULL 的区别。
int *p = NULL表示定义一个整型指针变量,并把指针变量的变量值初始化为NULL,指针变量的值即指针所指向的地址置为NULL。
int *p ; *p=NULL;同样定义一个整型指针,但是*p表示是指针指向地址所存储的值,即给p指向的内存赋值为NULL(这里可能会存在内存访问非法),可以这样写
结果就是 p所指向的地址即a的值变为了0。
3.给指定的地址直接赋值,可将地址强制转化为某个类型的指针值,在赋给对应的值,代码如下
和指针相关的易混淆的值有三个:指针的值(即指针指向的地址);指针本身的地址;指针指向的地址所存储的值。下面以图和代码说明:
void Test_pointer() { int test =123; int *q = &test; printf("&q指针本身的地址:%x\n",&q); printf("q指指针指向的地址%x\n",q); printf("*q指针指向地址所存的值:%x\n",*q); } int main(int argc,char* agrv[]) { Test_pointer(); system("Pause"); }
上述输出如下:
指针变量本身就是一个地址值,前面加&表示取这个指针本身的地址,&q代表指针变量存储在哪,即它自身的内存地址;q代表指针指向的地址,相当于指针变量的值;*q即指针指向的地址存储的值。
2. int *p = NULL;与 int *p; *p=NULL 的区别。
int *p = NULL表示定义一个整型指针变量,并把指针变量的变量值初始化为NULL,指针变量的值即指针所指向的地址置为NULL。
int *p ; *p=NULL;同样定义一个整型指针,但是*p表示是指针指向地址所存储的值,即给p指向的内存赋值为NULL(这里可能会存在内存访问非法),可以这样写
int a = 10; int *p = &a; *p = NULL;
结果就是 p所指向的地址即a的值变为了0。
3.给指定的地址直接赋值,可将地址强制转化为某个类型的指针值,在赋给对应的值,代码如下
//向指定的内存赋值 int *t = (int *)0x0012ff7c; *t =0x034A;
相关文章推荐
- C++ 基础知识点 五 第6章 指针、引用和动态空间管理
- C/C++基础知识(一)数组和指针
- [学习笔记]C和C++中指针的基础知识点(二)
- C/C++基础知识:函数指针和指针函数的基本概念
- C++ 基础知识回顾(string基础、智能指针、迭代器、容器类)
- 【C++】基础知识—引用和指针引用
- 【基础知识】C++指针知识
- C、C++基础知识之 引用与指针区别
- C/C++基础知识:函数指针和指针函数的基本概念
- C、C++基础知识之 定义指针
- C++基础知识点备忘录
- C/C++基础知识:函数指针和指针函数的基本概念
- C++基础知识——指向指针的指针
- C/C++内存管理和指针的基础知识
- C/C++内存管理和指针基础知识2
- C/C++基础知识总结——数组、指针域、字符串
- C/C++基础知识:函数指针和指针函数的基本概念
- [学习笔记]C和C++中指针的基础知识点(一)
- [读书笔记]C++基础知识温习:智能指针
- C/C++基础知识:函数指针和指针函数的基本概念