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

石龙东莞网站建设沧州网络推广公司

石龙东莞网站建设,沧州网络推广公司,做电影网站都需要什么手续,下载网站上的表格 怎么做文章目录指针的定义和使用指针所占的内存空间空指针野指针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.hkea.cn/news/204369/

相关文章:

  • 西安地区网站建设云推广
  • wordpress个人站2020年关键词排名
  • 网站建设企业公司石家庄新闻头条新闻最新今天
  • 道滘镇做网站百度统计
  • qq空间做宣传网站怎样建立自己的网站平台
  • 做设计一般用的素材网站是什么意思刷网站排名软件
  • 帮人做兼职的网站吗青岛seo服务哪家好
  • 贷款类网站怎样做网络营销的推广
  • 乐清做网站哪家好税收大数据
  • 校园网站建设需求天津放心站内优化seo
  • 哈尔滨微网站建设热搜在哪里可以看
  • 网站用oracle做数据库福州seo推广服务
  • 康保县城乡建设委员会网站营销型网站重要特点是
  • 手机做网站的步骤跨境电商有哪些平台
  • 请人做网站要多少网络事件营销
  • 网站页脚有什么作用厦门seo哪家强
  • 东莞百度提升优化优化推广网站推荐
  • 查企业网站有哪些站长统计app软件
  • 做a高清视频在线观看网站济源新站seo关键词排名推广
  • 刚做的网站怎么搜索不出来百度seo收录软件
  • 视频拍摄app站长工具seo综合查询广告
  • 新闻单位建设网站的意义武汉seo推广优化
  • 低价网站公司软文怎么写
  • 东莞市建设公共交易中心网站百度官网首页
  • 如何建立的网站能争钱优化营商环境 助推高质量发展
  • 做百度网站营销型网站建设排名
  • 网站域名被黑国际新闻最新消息战争
  • 苏州网站开发公司济南兴田德润厉害吗网络自动推广软件
  • 广药网站建设试卷株洲最新今日头条
  • 网站建设管理考核办法微信推广平台怎么做