C++指针与数组
来源:互联网 发布:淘宝新宝贝如何引流 编辑:程序博客网 时间:2024/05/17 22:19
通过指针引用数组——数组元素的指针,就是数组元素的地址,一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址,所以指针也可以指向数组元素(把某一元素的地址放到一个指针变量中)
用数组对指针赋值
#include<iostream>using namespace std;#include<stdlib.h>void main(){int ar[10]={1,2,3,4,5,6,7,8,9,10};for (int i=0;i<10;++i){cout<<ar[i]<<endl;}//int a=10;//int *p=&a;int *p=ar; //把 int型数组ar的首地址 赋值给 int型指针变量psystem("PAUSE");}
利用指针访问数组
#include<iostream>using namespace std;#include<stdlib.h>int ar[10]={1,2,3,4,5,6,7,8,9,10};void main(){for(int i=0;i<10;++i){cout<<ar[i]<<endl; //底层为了效率高,把数组形式访问转换成*(ar+i)指针形式访问}int *p=ar; //把数组首元素地址赋值给指针变量pfor(i=0;i<10;++i) //循环过程指针p指向不变,p+1指向下1个空间{cout<<*(p+i)<<endl; //p+i指向ar之后的第i各元素(不是字节,跟变量类型有关)}for(i=0;i<10;++i){cout<<*(ar+i)<<endl;}system("PAUSE");}
指针运算(指针+1),对应的字节改变
#include<iostream>using namespace std;#include<stdlib.h>void main(){int a=10;int *p=&a;cout<<p<<":"<<p+1<<endl; //指针p所指向的类型多大,+1就加了多少字节double *pd=(double *)&a; //对整型地址强制类型转换cout<<pd<<":"<<pd+1<<endl;system("PAUSE");}
#include<iostream>using namespace std;#include<stdlib.h>int ar[10]={1,2,3,4,5,6,7,8,9,10};void main(){for(int i=0;i<10;++i){cout<<ar[i]<<endl; //底层为了效率高,把数组形式访问转换成*(ar+i)指针形式访问}int *p=ar; //把数组首元素地址赋值给指针变量pfor(i=0;i<10;++i) //循环过程指针p指向不变,p+1指向下1个空间{cout<<*(p+i)<<endl; //p+i指向ar之后的第i各元素(不是字节,跟变量类型有关)}for(i=0;i<10;++i){cout<<*(ar+i)<<endl;}p=ar;for(;p<(ar+10);++p) //指针运算++p,访问数组元素,循环移动指针指向{//cout<<"VALUE of p:"<<p<<endl;cout<<*p<<endl;}system("PAUSE");}
用数组名作为函数的参数,数组参数退化成指针
#include<iostream>using namespace std;#include<stdlib.h>//用数组名作为函数的参数void show_array(int br[]) //数组退化成指针,*br//函数的参数以数组形式传递,[]内的数字会被忽略掉{cout<<"size of br:"<<sizeof(br)<<endl;//数组作为函数参数不是传递整个数组,传递的是数组首元素的地址for(int i=0;i<10;++i){cout<<br[i]<<endl;}}void main(){int ar[10]={1,2,3,4,5,6,7,8,9,10};cout<<"size of ar:"<<sizeof(ar)<<endl;show_array(ar);system("PAUSE");}
#include<iostream>using namespace std;#include<stdlib.h>//用数组名作为函数的参数void show_array(double br[]) //数组退化成指针,*br//函数的参数以数组形式传递,[]内的数字会被忽略掉{cout<<"size of br:"<<sizeof(br)<<endl;//数组作为函数参数不是传递整个数组,传递的是数组首元素的地址for(int i=0;i<10;++i){cout<<br[i]<<endl;}}void main(){double ar[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.10};cout<<"size of ar:"<<sizeof(ar)<<endl;show_array(ar);system("PAUSE");}
阅读全文
0 0
- C数组与指针
- c 指针与数组
- C 数组与指针
- C数组与指针
- 指针与数组 C
- C指针与数组
- c数组与指针
- C-数组与指针
- C指针与数组
- c指针与数组
- C-指针与数组
- C,C++ 指针数组与数组指针
- C语言:指针数组与数组指针
- C,C++ 指针数组与数组指针
- C,C++ 指针数组与数组指针 .
- C,C++ 指针数组与数组指针
- C语言指针数组与数组指针
- C,C++ 指针数组与数组指针
- 平稳序列
- 在javascript中使用el表达式(有图有真相!直接看图,简单明了!)
- 使用python轻松架设本地服务器
- xlsx包安装时Java环境配置
- 一看你就懂,超详细java中的ClassLoader详解
- C++指针与数组
- c# ADO.NET
- 51NOD-1009-数字1的数量
- 在javascript中使用el表达式
- C++指针与字符串
- C++运算符前置++v.s.后置++
- 开放职位512个,基本工资最高26万美元——美国人工智能就业市场全景一览|雷报050期
- 出门问问李志飞:智能音箱市场价格战已经拐偏了消费者
- 你以为人工智能很遥远,但 Google 却打算让每个人都用上 AI