c++ 语法指针

news/2024/12/29 11:42:52/

指针

1.指针就是一个地址 

2. 指针本身也是有地址的

3.取指针所指向的地址保存的值 用变量名取

4.取指针所指向地址保存的值 *+变量名取(解引用)

int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";// 指针定义int a =  10;// 指针定义的语法: 数据类型 *指针变量int *p;//让指针记录变量a的地址p = &a;std::cout << "a 的地址为" << &a << " p的地址为=" << &p << " p保存的值为" << p << " 取p所指向地址保存的值" << *p << std::endl;/// 32位4个字节 64位8个字节std::cout << "指针占用空间" << sizeof(p) << std::endl;return 0;
}

空指针野指针

空指针

1.指针变量指向内存中编号为0的空间

2.用途 初始化指针变量

3.注意 空指针指向的内存是不可访问的

int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";int *p = NULL;std::cout << *p << std::endl;return 0;
}

野指针

野指针指向非法的内存空间

/// 野指针 避免使用野指针
int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";int *p = (int *)0x1100;std::cout << *p << std::endl;return 0;
}

const修饰指针

const 修饰指针有三种情况:

1.const修饰指针 -- 常量指针

2.const修饰常量-- 指针常量

3.cont 即修饰指针又修饰常量

常量指针

const int *p = &a;

特点:指针的指向可遇记修改,但是指针指向的值不可以修改

 

指针常量

int * const p = &a;

特点 指针指向不可以改 但是指针指向的值可以修改

cont 即修饰指针又修饰常量

const int * const p = &a;

特点 指针指向和指针指向的值都不能修改

int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";int a = 10;int b = 20;//常量指针const int  *p = &a;p = &b;// 错误示范 因为const 修饰的是 *p 因此*p不能修改// *p = 20;int const *p3 = &a;
//    *p3 = b;p3 = &b;std::cout << "*p3" << *p3 << std::endl;//指针常量int * const p1 = &a;*p1 = b;// 错误示范 因为const修饰的是指针  所以指针变量的值不能修改 但是指针变量所指向的值可以修改//p1 = &b;const int * const p2 = &a;// const 即修饰指针 也修饰 常量 所以都不能修改
//    p2 = &b;
//    p2 = *b;return 0;
}

指针和数组

#include <iostream>
#include "mathutil.hpp"
int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";int a[10] = {1,2,3,4,5,6,7,8,9,10};std::cout << a[0] << std::endl;int *p = a;std::cout << *p << std::endl;*p++; // 这里的++ 加的是指针的步长std::cout << *p << std::endl;p = a;for (int i = 0;  i < 10 ; i++) {std::cout << *p << std::endl;*p++;}std::cout << sizeof(char *) << std::endl;return 0;
}

指针和函数

#include <iostream>
/// 值传递 不能修改实参
void swap1(int a, int b) {int c = a;a = b;b = c;
}
/// 地址传递 可修改实参
void swap2(int *a, int *b) {int c = *a;*a = *b;*b = c;
}int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";int a = 10;int b = 20;swap1(a, b);std::cout << a << b << std::endl;swap2(&a, &b);std::cout << a << b << std::endl;return 0;
}

指针数组函数

#include <iostream>
void sort(int *array, int len) {for (int i = 0; i < len; i++) {for (int j = 0; j < len - i - 1; j++) {if (array[j] > array[j+1]) {int temp = array[j];array[j] = array[j + 1];array[j+1] = temp;}}}
}
int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";int array[10] = {2,3,4,33,88,21,44,32,6,5};int len = sizeof(array) / sizeof(array[0]);sort(array, len);for (int i = 0; i < len; i++) {std::cout << "array" << i << "=" << array[i] << std::endl;}return 0;
}


http://www.ppmy.cn/news/1340544.html

相关文章

Leetcode—2670. 找出不同元素数目差数组【简单】

2024每日刷题&#xff08;一零七&#xff09; Leetcode—2670. 找出不同元素数目差数组 哈希表实现代码 class Solution { public:vector<int> distinctDifferenceArray(vector<int>& nums) {unordered_set<int> s;int n nums.size();vector<int&g…

openstack

在虚拟机上安装完openstack之后&#xff0c;根据你想提供的服务&#xff0c;再去安装一些组件(服务)&#xff0c;比如说 (Nova)&#xff1a;用于虚拟机的管理、调度和协调。 (Neutron)&#xff1a;用于管理虚拟网络和网络服务。 (Cinder)&#xff1a;提供块级存储服务&#…

vue 发布自己的npm组件

1、在项目任意位置创建index.ts文件 2、导入要到处的组件&#xff0c;使用vue提供的install 功能全局挂在&#xff1b; import GWButton from "/views/GWButton.vue"; import GWAbout from "/views/AboutView.vue";const components {GWButton,GWAbout, …

C++学习Day01之namespace命名空间

目录 一、程序及输出1.1 命名空间用途&#xff1a; 解决名称冲突1.2 命名空间内容1.3 命名空间必须要声明在全局作用域下1.4 命名空间可以嵌套命名空间1.5 命名空间开放&#xff0c;可以随时给命名空间添加新的成员1.6 命名空间可以是匿名的1.7 命名空间可以起别名 二、分析与总…

MySQL EXPLAIN查询执行计划

EXPLAIN 可用来查看SQL执行计划&#xff0c;常用来分析调试SQL语句&#xff0c;来使SQL语句达到更好的性能。 1 前置知识 在学习EXPLAIN 之前&#xff0c;有些基础知识需要清楚。 1.1 JSON类型 MySQL 5.7及以上版本支持JSON数据类型。可以将数组存为JSON格式的字符串&#…

unity3d的海盗王白银城演示

这是一个外网上的下载的海盗王unity3d制作的白银城演示场景。 地图只含有白银城区&#xff0c;没有野外和怪物。 当然也没有服务器端的。 我对灯光、摄像头、天空背景等做过调整&#xff0c;使它显示起来比较鲜丽。 它的模型和贴图是直接拿了海盗的&#xff0c;没有做过优化调整…

Spring Cloud Gateway 修改请求体、响应体

前言 例行每半年一次的工作轮换&#xff0c;接手了同事的网关服务 年底了工作不是很忙&#xff0c;看了下前人的代码&#xff0c;虽然都能读懂&#xff0c;但感觉应该可以再优雅一点 于是把网关的相关知识又翻阅了一下 官方资料 PS&#xff1a;这里如果按新方案调整的话&#…

2024美赛数学建模F题思路分析 - 减少非法野生动物贸易

1 赛题 问题F&#xff1a;减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响&#xff0c;并威胁到全球的生物多样性。据估计&#xff0c;它每年涉及高达265亿美元&#xff0c;被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c;…