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

小樽C++ 多章⑧ (贰) 指针与数组

目录

1.C++中数组变量名某些情况可以看成是指针

2.C语言的scanf 输入语句,printf 输出语句

3.用指针来当动态数组


小樽C++ 多章⑧ (壹) 指针变量icon-default.png?t=N176https://blog.csdn.net/weixin_44775255/article/details/129031168

小樽C++ 多章⑧ (叁) 指针与字符串、(肆) 函数与指针icon-default.png?t=N176https://blog.csdn.net/weixin_44775255/article/details/129397866​​​​​​​

1.C++中数组变量名某些情况可以看成是指针

#include<iostream>
using namespace std;
//	1.用数组名访问数组
int a[]={10,11,12,13,14,15};
int *p=a+1;
int main(){cout<<*a<<endl; //默认输出第一个 cout<<*(a+2)<<endl;cout<<*(++p)<<endl; 	return 0;
}

  1. *a代表,初始指向 a[0]位置,也就是10。
  2. *(a+2)    a+2代表 数组a地址往后挪2位,也就是a[2]的地址, 指针就指向12。
  3.  *p = a+1, 那p指向a[1]的地址,++p 那就指向a[2]的地址,*(++p)就是a[2]的值12。
  • 可以发现,数组变量a可以当作指针使用,默认指向第一个数组元素!
  • 指针是动态的数据结构、数组是静态数据结构。指针在C语言的输入语句就用到了。接下来我们了解下C语言的输入scanf,输出printf。


2.C语言的scanf 输入语句,printf 输出语句

用C语言的输入输出前要导入库:include<cstdio>  //c语言的标准IO

格式:printf(“格式控制字符串” , 输出列表)

#include<iostream>
#include<cstdio>
using namespace std;
int main(){// 输出用法例子 printf("整数:%d,长整数:%ld\n",100*1234,1+3*10000000);	printf("单精度:%f,双精度:%lf\n",1.5*1234,1+3*1.55);	printf("保留2位:%.2f, 9个占位并保留3位:%9.3f\n",3.14*1422,3.14159*3);	printf("字符:%c, 字符串:%s",'A',"abccd"); //	 输入用法例子int a;double b;float c;scanf("%d%lf%f",&a,&b,&c);printf("a=%d  b=%lf  c=%f",a,b,c); return 0;}

 

scanf 使用数组名

//2.scanf使用数组名
#include<iostream>
#include<cstdio>
using namespace std;
int a[5];
int main(){for(int i=0;i<5;i++){scanf("%d",a+i); //a+i就是地址,a+0,a+1,a+4等地址 }for(int i=0;i<5;i++){
//		cout<<*(a+i)<<" ";printf("a[%d]=%d\n",i,a[i]);  //a[i]就是 *(a+i)} return 0;
}


3.用指针来当动态数组

什么是动态数组? 数组空间长度可以变,不固定。

用指针来当数组可实现动态变化。

例如:求数组元素的和。

//3.指针也可以看成数组名
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int *a; //指针变量a当数组名使用 
int main(){scanf("%d",&n);//指针变成数组怎么写? a = new int[n+1]; // 申请连续的n+1片的空间给指针afor(int i=0;i<5;i++){ // 输入值到数组scanf("%d",&a[i]);}for(int i=1;i<5;i++){ // 求和运算a[i] = a[i] + a[i-1];}for(int i=0;i<5;i++){ // 输出结果printf("%d ",a[i]);}return 0;
} 

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

相关文章:

  • MXNet的机器翻译实践《编码器-解码器(seq2seq)和注意力机制》
  • RK3588平台开发系列讲解(同步与互斥篇)自旋锁介绍
  • Linux系统CPU占用率较高问题排查思路
  • 源码解析——HashMap
  • Elasticsearch 核心技术(六):内置的 8 种分词器详解 + 代码示例
  • Mysql8.0的特性
  • JDK动态代理(tedu)(内含源代码)
  • 【数据结构】二叉搜索树
  • 抢跑数字中国建设,青岛市统计系统考察团赴实在智能调研统计数字员工
  • 深浅拷贝——利用模拟实现basic_string深入理解
  • 大模型分布式系统
  • 【时序】时序预测任务模型选择如何选择?
  • 重温数据结构与算法之深度优先搜索
  • STM32F103驱动LD3320语音识别模块
  • 2023 最新可用Google镜像地址 长期更新
  • MATLAB算法实战应用案例精讲-【优化算法】蝗虫优化算法(GOA)及其算法变种(附matlab和python代码实现)
  • 数据结构与算法 顺序表、链表总结
  • Nginx集群搭建-三台
  • 【算法】图的存储和遍历
  • 文件如何批量复制保存在多个文件夹中
  • 16N60-ASEMI高压MOS管16N60
  • Open3D 多个点云配准(C++版本)
  • java实现Hbase 增删改查
  • 1109. 航班预订统计 差分数组
  • 图床搭建,使用typora上传
  • 低代码开发的优势是什么?
  • Ip2Resion线上部署报数据越界及错误处理
  • 致敬我的C++启蒙老师,跟着他学计算机编程就对了 (文末赠书5本)
  • CSS中的伪元素和伪类
  • 逻辑优化基础-rewrite