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

分类网站建设方案北京搜索优化推广公司

分类网站建设方案,北京搜索优化推广公司,wordpress 修改时间,做多级分销的网站文章目录指针的定义和使用指针所占的内存空间空指针野指针const修饰指针指针和数组指针和函数指针、数组、函数案例:冒泡排序指针的定义和使用 指针定义的语法:数据类型 * 指针变量名 使用指针: 可以通过解引用的方式来找到指针指向的内存&…

文章目录

  • 指针的定义和使用
  • 指针所占的内存空间
  • 空指针
  • 野指针
  • const修饰指针
  • 指针和数组
  • 指针和函数
  • 指针、数组、函数
    • 案例:冒泡排序


指针的定义和使用

指针定义的语法:数据类型 * 指针变量名

使用指针:
可以通过解引用的方式来找到指针指向的内存;
指针前加*代表解引用,找到指针指向的内存中的数据。

#include<iostream>
using namespace std;
int main()
{int a = 10;int* p;  //定义指针语法:数据类型 *指针变量名p = &a;  //指针指向变量a的地址,&a表示取a的地址//int* p = &a;等价于上面两行cout << a << endl;cout << p << endl;*p = 100;  //通过*操作指针指向变量的内存,*p表示取a的值cout << a << endl;cout << *p << endl;system("pause");return 0;
}输出:
10
00FDFEA0
100
100

指针所占的内存空间

指针也是一种数据类型。
在32位操作系统下,指针是占4个字节空间大小,不管什么数据类型;
在64位操作系统下,指针是占8个字节空间大小,不管什么数据类型;

空指针

空指针:指针变量指向内存中编号为0的空间。
用途:初始化指针变量。
注意:空指针指向的内存是不可以访问的。

int* p = NULL;  //空指针用于给指针变量进行初始化//空指针是不可以进行访问的
//0~255之间的内存编号是系统占用的,因此不可以访问
cout << *p << endl;  //编译失败
*p = 100;  //编译失败

野指针

野指针:指针变量指向非法的内存空间。

野指针的成因:
1、指针未初始化:
指针变量刚被创建时不会自动成为NULL指针,它所指向的空间是随机的;
2、指针越界访问:指针指向的范围超出了合理范围,或者调用函数时返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放;
3、指针释放后未置空:释放后的指针应立即将指针置为NULL,防止产生“野指针”。

const修饰指针

1、const修饰指针——常量指针
指针指向的值不可以改;
指针的指向可以改。

const int* p1=&a;
p1=&b;//正确
*p1=100;//错误

2、const修饰常量——指针常量
特点:
指针的指向不可以改;
指针指向的值可以改。

int* const p2=&a;
p2=&b;//错误
*p2=100;//正确

3、const修饰指针和常量
指针的指向和指向的值都不可以该。

const int* const p3=&a;
p3=&b;//错误
*p3=100;//错误

指针和数组

作用:利用指针访问数组中的元素。

int main()
{int arr[] = { 1,2,3,4,5 };int* p = arr;//指向数组的指针,arr就是数组首地址cout << "利用指针访问第一个元素:" << *p << endl;p++;//让指针向后偏移4个字节(32位操作系统)cout << "利用指针访问第二个元素:" << *p << endl;cout << "利用指针变量数组:" << endl;int* p1 = arr;for (int i=0;i<5;i++){//利用指针遍历数组cout << *p1 << " ";p1++;}system("pause");return 0;
}输出:
利用指针访问第一个元素:1
利用指针访问第二个元素:2
利用指针变量数组:
1 2 3 4 5

指针和函数

例:实现两个数字进行交换

#include<iostream>
using namespace std;//值传递
void swap0(int num1, int num2)
{int temp = num1;num1 = num2;num2 = temp;
}
//地址传递
void swap(int* p1, int* p2)
{int temp = *p1;*p1 = *p2;*p2 = temp;
}int main()
{int a = 10;int b = 20;swap(&a, &b);//地址传递会改变实参,而值传递不会改变实参cout << "a=" << a << endl;cout << "b=" << b << endl;system("pause");return 0;
}

值传递和地址传递的区别:
值传递:只是把实参复制传给形参,在子函数中修改形参,不会改变主函数中的实参;
地址传递:由于形参和实参表示同一个内容,在子函数中修改形参,也会改变主函数中的实参。

指针、数组、函数

案例:冒泡排序

#include<iostream>
using namespace std;void bubbleSort(int* arr, int len)
{for (int i = 0; i < len; i++){for (int j = 0; j < len-i-1; j++){if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}void printArray(int* arr, int len)
{for (int i = 0; i < len; i++){cout << arr[i] << endl;}
}int main()
{int arr[10] = { 9,5,7,3,6,4,8,1,2,0 };//数组长度int len = sizeof(arr) / sizeof(arr[0]);//排序bubbleSort(arr, len);//arr就表示数组首地址//输出printArray(arr, len);system("pause");return 0;
}

http://www.ds6.com.cn/news/48426.html

相关文章:

  • 怎么做qq可信任网站网推接单平台
  • wordpress 网站做网络推广需要多少钱
  • 石龙仿做网站安徽seo
  • 网站规划书500字购物网站有哪些
  • 下载网站模板后本地的网站会自动做跳转微信广告投放收费标准
  • 做网站的背景像素怎么样推广自己的店铺和产品
  • 网站建设企业资质地推
  • 精美合同网站建设百度下载安装2021
  • 域名通过了才可以做网站吗google框架三件套
  • 响应式网页设计总结账号seo是什么
  • 什么网站是php做的模板下载网站
  • 上海公司黄页网站百度推广的优化软件
  • 米拓建站免费模板百度收录网站需要多久
  • 网站开发 定制域名查询138ip
  • 印刷网站建设 优帮云百度搜索网址大全
  • 企业网站建设包含哪些内容南京seo圈子
  • 做网站的平台2022世界足球排行榜
  • 北京市住房和建设委员会门户网站哪里可以做
  • 建一个网站怎么赚钱百度手机助手官网
  • 做网站商城如何优化线上营销的优势
  • 做阿里国际网站要收费吗优化营商环境发言稿
  • wordpress生成网站模版最近的新闻事件
  • 2019做网站的出路南宁百度seo软件
  • 做视频包的网站n127网推广
  • 2018年做淘宝客网站还能挣钱吗广东深圳疫情最新情况
  • 免费网站空间有哪些百度营销推广
  • 吉安做网站的公司安徽seo网络推广
  • 在自己的电脑建设空间网站谷歌google下载
  • 公司做网站的费用怎么账务处理天津seo推广软件
  • 郴州网站建设较好的公司网站推广营销运营方式