1.指针变量的内容

int a=112, b=-1;
float c=3.14;
int *d=&a;
int *e=&c;

(1) 变量d和e被声明为指针,并用其他变量的地址予以初始化;

(2) 指针变量d和e的初始化用&操作符完成,该操作符用于产生操作数的内存地址;

2.间接访问操作符或解引用指针*

(1) 对指针进行解引用操作可以获得它所指向的值;

*d=112
*e=3.14

3.未初始化和非法的指针

int *a;
...
*a=12;

(1) 上述代码中声明了一个指针变量a,然后把12存储到a所指向的内存位置;

(2) 但是,上述代码是错误的; 因为声明了指针变量a后,从未对a进行初始化,所以a指向哪里不确定,也就没办法预测12这个值将存储于什么地方;

4.NULL指针

(1) NULL指针,作为一个特殊的指针变量,表示不指向任何东西;要使一个指针变量为NULL,可以给它赋一个零值; 为了测试一个指针变量是否为NULL,可以将其与0进行比较;

(2) 对NULL指针进行解引用操作是非法的; 在对指针进行解引用操作之前,首先必须确保它并非NULL指针;

5.指针,间接访问,左值

int a;
int *d=&a; *d=10-*d; //正确
d=10-*d; //错误

(1) *d=10-*d中,d所指向的位置a把赋值符右侧的表达式的计算结果作为它的新值;

(2) d=10-*d,非法,把一个整型数量10-*d存储于一个指针变量中;

6.指针,间接访问,变量

*&a=25;

(1) &a产生变量a的地址,*&a取变量a的地址所存储的数值,所以*&a=25等价于a=25;

7.指针的指针

int a=12;
int *b=&a;
int **c=&b; 表达式 等价的表达式
a 12
b &a
*b 12,a
c &b
*c b, &a
**c *b,12,a

最新文章

  1. java web学习总结(二十三) -------------------编写自己的JDBC框架
  2. Hadoop中MR程序的几种提交运行模式
  3. PHP递归生成树形数组
  4. linux系统修改CST时区
  5. Java Memory Basic
  6. xargs rm -rf 与 -exec rm
  7. GC选择之CMS 并发标记清除
  8. SQL Server 查询性能优化——创建索引原则(一)(转载)
  9. iPhone6 AirDrop找不到我的mac解决方法!注销mac和iPhone的icloud账号
  10. 我们距离AI编程还有多远?
  11. 一篇年薪60万的JVM性能调优文章
  12. web中spring框架启动流程第一发
  13. String字符串的常用方法
  14. git获取远程服务器的指定分支
  15. 【Linux基础】crontab定时命令详解
  16. Linux(Centos)下调整分区大小(以home和根分区为例)
  17. What's the Python Launcher?
  18. C# 监控代码执行效率
  19. 最新Windows下c++读写锁SRWLock介绍
  20. ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded

热门文章

  1. 3D场景建模
  2. 轻量级CI/CD发布部署环境搭建及使用_04_docker安装nexus3
  3. python中的字符串的常用方法介绍
  4. LeetCode-1705 吃苹果的最大数目
  5. 一键接入 ChatGPT,让你的QQ群变得热闹起来
  6. 银河麒麟服务器V10-SP2安装tomcat
  7. 运行Java时报错:Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'
  8. Day 24 24.1:逆向分析1 - Steam案例
  9. Codeforces Round #748 (Div. 3) - D2. Half of Same
  10. Windows.h 文件学习