C++杂碎敲过的代码

2024-05-30 00:48
文章标签 代码 c++ 杂碎 敲过

本文主要是介绍C++杂碎敲过的代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编译环境Eclipse C++

  • c++是在C语言的基础上增加了面向对象的思想。
  • 增加字符串数组以及字符串类型:
    char strs []= “i am icanactnow !”;
    string strs =”i am superman !”;

字符串指针

#include <iostream>
using namespace std;int main() {char *str = "s13un";//字符指针存放字符串cout << str << endl;return 0;
}

字符串指针

#include <iostream>
using namespace std;int main() {char str1[] = "hello" ;char str2[20], *p1 , *p2;p1= str1 ;p2= str2 ;for(;*p1!='\0';p1++,p2++)*p2 = *p1;*p2 = '\0';cout << str1<<str2 << endl;return 0;
}

函数指针

#include <iostream>
using namespace std;int main() {
//函数指针调用函数
int max (int x, int y);//声明函数要写的向声明一样全//定义一个函数指针,注意体会格式,以及使用方式
int (*p)(int x,int y);
p= max;//将函数的首地址赋值给函数指针pint x = p(6,2);cout << x << endl;return 0;
}int max (int x,int y){return  x>y? x:y;}

指针数组

#include <iostream>
using namespace std;int main() {
//指针数值
//指针数组存放着数组元素的首地址char *p[4]= {"sun1","yang","fan","!"};char *p1;p1= p[0];//思考这块为什么不能写成 p1 = p;cout<< p1 <<endl;return 0;
}

验证指针数组存放的是元素的首地址

#include <iostream>
using namespace std;int main() {char *p[4]= {"sun1","yang","fan","!"};char *p1;
// p1= p;cout<< ++p[0] <<endl;return 0;
}
//输出结果是:un1

指向指针的指针

// 仔细体会运行结果。
#include <iostream>
using namespace std;int main() {char **p1;char *p[4]= {"sun1","yang","fan","!"};p1= p+2;cout<< p<<'\n'<<*p<<'\n'<<**p<<'\n' <<endl;return 0;
}
//运行结果 
0x22ff20
sun1
s

const 指针

  • const 指针分三种 指向常量的指针/常指针/指向常量的常指针。
  • 分析:const离谁近谁就不变。
//指向常量的指针
int a=12,b=15;
const int *p = &a; //const离int近,所以常量不能修改。
*p =15;//非法,指针为const类型不允许通过指针修改地址上的值。
a = 15;//合法,const 指针并不能限制整形变量。要组织整形变量改变,则 const int a = 12;
//常指针
char *const p1 = "icanactnow";//const离指针近所以指针不能修改。
p1 = "error"; //由上面得,此语句不合法。
//指向常量的常指针
int a= 6;
int b= 7;
const int * const p1 = &a;//都不能变。
p1 = &b ;//非法
*p1 = 8;//非法,试图通过指针修改常量
a = 9;//合法,所有的const相关的只是通过指针相关的受影响。

引用

//简单示例
int a = 6;
int &b = a; //则b为a的引用,b为a的别名。
//错误示例
int a[5];
int &b = a;//不能建立数组引用
int &b = a[1];//不能建立数组元素引用int &c = b;//不能建立引用的引用。int *p = b;//不能建立引用的指针。
  • 示例
#include <iostream>
using namespace std;int main() {//用引用实现两个数字的调换void swap (int & ,int &); //函数声明int a= 7 , b=8;swap (a,b);cout << a<<b<< endl; // prints !!!Hello World!!!return 0;
}void swap (int &c ,int &d){int temp;temp = c;c= d;d=temp;}

插播对指针输出字符串的理解

int i =12;
int *p= &i;
cout << *P << endl; //输出12 ,p 输出 地址。
char * p = "sun";
cout << *p << endl;//输出s ,P输出sun.

解释:对于字符串指针存放的是首地址,要输出时首先判断如果是字符型的指针就将从首地址开始的字符依次输出知道’\0’结束。所以会出现如上所示情况。

new与delete

#include <iostream>
using namespace std;struct student {string name;int number;
};
int main() {student * p ;p = new  student; //开辟一个类型为student类型的结构体存储空间,将返回的地址赋值给结构体指针。p->name= "sun";//通过结构体指针给结构体成员赋值。p->number = 01;cout << p->name<< endl; // prints !!!Hello World!!!delete  p;// 释放p的内存空间return 0;
}

typedef

  • 声明一个类型名来定义一个已存在的类型
typedef int HAHAHA;//用HAHAHA代替int类型
  • typedef用于结构体
typedef struct{......
} TYPE ;//
TYPE student;//定义结构体变量
TYPE *p;//定义了指向结构体的指针

这篇关于C++杂碎敲过的代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015107

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill