当前位置: 首页 > news >正文

C++ 【2】

1.指针基础
字符:'C' 一个字符占一个字节
在C++中  <<  这个为插入运算符       >>  这个为提取运算符

一个变量的地址称为该变量的指针;如果在程序中定义了一个变量或者数组,
那么,这个变量或数组的地址(指针);也就确定为一个常量。
(1)直接访问:按变量地址存取变量。

  cin>>i; //shiji上放到定义i单元的地址中

例如:

#include<iostream>
using namespace std;int main()
{int  x  = 6;cout<<"\n x在内存单元的地址为:"<< &x <<endl;  //直接访问cout<<"\n请输入 x 的值:"<< x <<endl;cin>>x;cout<<"x的值为:"<< x <<endl;return 0;
}

(2)间接访问:将变量的地址存放到另一个单元p中,
通过p取出变量的地址,再对变量操作。

例如:

#include<iostream>
using namespace std;int main()
{int* p = null;    //一级指针int x = 666;cout<<"\n x在内存单元的地址编号为:"<< &x <<endl;p = &x;cout<<"p的值为(x的内存单元地址编号): "<< p <<endl;cout<<"输出指针变量 p 指向地址编号的值:"<< *p <<endl;  //间接访问return 0;
}

变量的  指针  和  指向变量的 指针变量

变量的  指针 就是 变量的地址,当变量定义后,其指针(地址)是一 常量

如:可以定义一个变量 专门用来存放  另一变量的地址,这种变量我们称为“指针变量”
在编译时同样分配一定的存储单元,为赋初值时,该存储单元的值是随机的

指针变量定义的一般形式为:
类型标识符  *变量名

int *i_point;

指针变量赋初值的两种写法:

(1) int  i , *i_piont;i_point = &i;(2)  int i;int *i_point = &i;

注意:一个指针变量只能指向同一类型的变量;即:整型变量只能指向存放整型变量数据的地址,
而不能存放其它类型数据的地址。

* 的含义:
1.    在定义语句中只表示变量的类型是指针,没有任何计算意义
2.  * 在语句中表示"指向"。 &表示"取地址"


2.指针变量的引用:
    指针变量只能存放地址,不要将非地址数据赋值给指针变量。  

#include<iostream>
using namespace std;int main(int argc ,char *argv[])
{int x,y;                  //定义两个整型变量int*p1,*p2;                //定义两个整型指针p1 = &x ,p2 = &y;        //给指针变量 p1,p2 赋值*p1 = 10,*p2 = 20;        //给两个指针赋值cout<<a<<'\t'<<b<<endl;        //直接访问并输出          
// '\t'  的意思是:它是一个转义字符,相当于Tab键,可以使两个输出的数,保持一定的间距,便于阅读。cout<<*p1<<'\t'<<*p2<<endl;  //指针变量引用return 0;
}    


注意:绝不能对未赋值的 指针变量 作 “指向” 运算    

http://www.lryc.cn/news/171383.html

相关文章:

  • Java学习笔记40——Lambda表达式
  • 【考研数学】线性代数第五章 —— 特征值和特征向量(3,矩阵对角化理论)
  • 【计算机网络】IP数据报首部格式、最大传输单元MTU、最大分段大小MSS
  • shell脚本之文件读写
  • SAP 刷新Fiori Apps缓存的方法(解决修改CDS后Fiori无法重载新配置)
  • 如何在 Excel 中计算日期之间的天数
  • Java高级-注解
  • wabp.m 代码注释(便于算法快速理解)
  • 数据库数据恢复-SQL SERVER数据库文件损坏的故障表现数据恢复方案
  • flink中cpu消耗的大户-序列化和反序列化
  • 使用 K 均值聚类进行颜色分割
  • Redis 哈希表操作实战(全)
  • element table合并行或列 span-method
  • 【操作系统笔记】内存分配
  • Web 整合
  • hasOwnProperty 方法解析
  • 使用 nohup 运行 Python 脚本
  • Django:五、登录界面实现动态图片验证码
  • GPT,GPT-2,GPT-3,InstructGPT的进化之路
  • firefox_dev_linux下载安装配置(部分系统自带包请看结尾)
  • vim缓存-交换文件
  • Hive 优化建议与策略
  • CentOS 7.5 centos failed to load selinux policy 错误解决方法
  • 注入之SQLMAP(工具注入)
  • Linux学习资源Index
  • 什么是SVG(可缩放矢量图形)?它与普通图像格式有何不同?
  • 求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows
  • React TypeScript 定义组件的各种方式
  • 互联网摸鱼日报(2023-09-20)
  • AWS入列CNCF基金会