内存单元内容与地址

image.png

指针定义和间接操作

image.png

内存单元与地址

image.png

eg:

image.png
image.png

数组与指针

image.png

左值和右值

image.png

一般指针,指针数组和数组指针

image.png

上面 号放在类型定义里面是指定义一个指针,作为(ip)输出,是指 取指针地址间接引用的指

  1. int main(){
  2. //注意指针在定义和间接访问的区别
  3. // int i = 4; int *iP = &i; cout << (*iP) << endl;
  4. // double d = 3.14; double * dP = &d; cout << (*dP) << endl;
  5. // char c = 'a'; char *cP = &c; cout << (*cP) << endl;
  6. int c[4] = {1, 2, 3, 4};
  7. int * a[4];
  8. int (*b)[4]; //大小必须匹配
  9. b = &c;
  10. for(unsigned int i = 0; i<4; i++){
  11. a[i] = &(c[i]);
  12. }
  13. cout << *(a[0]) << endl;
  14. cout << (*b)[0] << endl;
  15. return 0;
  16. }

const与指针

image.png

pStr1 指针指向的内容可变,指向内容的存储空间不可变
pStr2 指针指向的内容不可变,指向内容的存储空间可变
pStr3 都不可变

pStr1中的const放在最左边和pStr1的表达意思一样

image.png

指向指针的指针

image.png

野指针

image.png

image.png
image.png

NULL指针

image.png

image.png

杜绝野指针

image.png