C/C++常用函数总结以及在ubuntu和vs中运行
C++常用函数总结
定义数组
//动态定义一维数组
int *p1 ;p1 = new int [row] ;
//输入一维数组的值
for( i = 0 ; i < row ; i ++ )p1[i] = rand () % 10 ;
//输出一维数组
for( i = 0 ; i < row ; i ++ )cout<<p1[i] <<' ' ;
cout<<endl;//动态定义二维数组
int **p2 ;
p2 = new int*[row] ;
for( i = 0 ; i < row ; i ++ )p2[i] = new int[col] ;
//输入二维数组的值
for( i = 0 ; i < row ; i ++ )for( j = 0 ; j < col ; j ++ )p2[i][j] = rand() % 10 ;//动态定义三维数组:
int *** p3 ;
p3 = new int**[hight ] ;
for( i = 0 ; i < hight ; i ++ )p3[i] = new int*[row] ;
for( i = 0 ; i < hight ; i ++ )for( j = 0 ; j < row ; j ++ )p3[i][j] = new int[col] ;//输入三维数组值:for(i = 0 ; i < hight ; i ++ )for(j = 0 ; j < row ; j ++ )for( k = 0 ; k < col ; k ++)p3[i][j][k] = rand()%10 ;
指针
#include <iostream>
using namespace std;void swap1(int p,int q) //不改变实参的数值
{ int temp;temp = p;p = q ;q = temp;
}void swap2(int *p,int*q) //编译器会报错
{int *temp;*temp = *p;*p = * q;*q = *temp;
}void swap3(int *p,int *q) //不会改变实参的数值
{int *temp;temp = p ;p = q;q = temp;
}
void swap4(int *p,int *q) //改变实参的数值
{int temp;temp = *p;*p = *q;*q = temp;
}
void swap5(int &p,int &q) //改变实参的数值
{int temp;temp = p;p = q;q = temp;
}
int main(){int a,b;swap1(a,b);//swap2(&a,&b);//swap3(&a,&b);//swap4(&a,&b);//swap5(a,b);
cout<<a<<" "<<"b"<<endl;
return 0;
}
2.swap2(&a,&b)传的是一个地址进去,在函数体内的形参p和q是指向了实际参数a,b的内存地址的指针
要注意!
int *temp;
*temp = *p;
3.swap3(a,b)传的是一个地址过去,与swap2不同的是
*temp = * p ;//swap2 赋值
temp = p; //swap3 指向
/*swap2和swap3同样都没给temp指针分配内存*不同的是以上这两段代码。temp=p是指向,而不是复制了,temp是指向了p指针所指向的地址,也就是a*/
而代码
p = q;
q = temp;
/*其意思就是指针p指向了指针q所指向的地址,q又指向了指针temp所指向的地址,其实和temp=p是一个意思;
如下图所示
4.swap4,修改了指针所指向的地址中的值
int *temp;
temp = *p;
*p = *q;
*q = temp;
将指针p所指向的地址的值赋值给temp指针所指向的地址,*p=q,就是q指针所指向的地址赋值给指针p所指向的地址中的值,所以指针p所指向的a(地址)中的值就变成了b(b是q指针所指向的地址),同理指针temp所指向的地址就赋值给了q指针所指向的地址中的值,也就是说将最初p指针所指向的地址的值赋值给了q指针所指向的地址的值。没毛病,其实交换的本质就是这样的:最初的p的值要换成q的值,而q的值要换成最初p的值,所以只是将最初p的值给临时保存下来。
5.swap5和swap4是类似的。是一个引用传递,修改的结果直接影响实参。
void swap5(int &p,int &q){
int temp = p;
p = q;
q = temp;
}
所谓的引用传递就是指在调用函数的时候,将实参的地址传递到函数中,那么在函数中对参数所进行的修改,将会影响到实际的参数.将一个变量引用传递给函数,这样该函数就可以修改其参数(变量)的值。因为实参和形参引用了同一个地址,所以如果改变了形参的值,那么实参的值也将会发生变化。
引用传递参数
#include <iostream>
using namespace std;
void swap(int & a,int & b)
{int tmp;tmp=a;a=b;b=tmp;
}
void main()
{int x,y;cout << "请输入x" << endl;cin >> x;cout << "请输入y" << endl;cin >> y; cout<<"通过引用交换x和y"<<endl;swap(x,y);cout << "x=" << x <<endl;cout << "y=" << y <<endl;
}
运行结果1
指针传递参数
#include <iostream>using std::cout;using std::endl;using std::cin;swap(int *a,int *b){int tmp;tmp=*a;*a=*b;*b=tmp;}void main(){int x,y;int *p_x,*p_y;cout << " input two number " << endl;cin >> x;cin >> y;p_x=&x;p_y=&y;if(x<y)swap(p_x,p_y);cout << "x=" << x <<endl;cout << "y=" << y <<endl;}
运行结果如下
C++函数调用分析
#include <stdio.h>int func(int param1 ,int param2,int param3)
{int var1 = param1;int var2 = param2;int var3 = param3;printf("var1=%d,var2=%d,var3=%d",var1,var2,var3);return var1;
}int main(int argc, char* argv[])
{int result = func(1,2,3);return 0;
}
二进制进行移位(十六进制也可以)
char 8位
short int 16位
char a,b;
short int c;
a = 10; b= 3;
c = a;
c <<= 8;
c &=b;
// a = 1111,b=0011
//c = 1111 0000 =>1111 0011
如果一个函数需要返回多个参数,可以采用以下两种方法:
第一种方法是将返回值作为写参数。
#include <iostream>
#include <string>
using namespace std;void fun(int &a, char &b, string &c)
{a = 1;b = 'b';c = "test";
}int main()
{int a;char b;string c;fun(a,b,c);cout << a << " " << b << " " << c << endl;
}
第二种方法是定义一个结构,返回指向该结构的指针。
#include <iostream>
#include <string>
using namespace std;struct result
{int a;char b;string c;
};result * fun()
{result *test=new result;test->a = 1;test->b = 'b';test->c = "test";return test;
}int main()
{result *test;test=fun();cout << test->a << " " << test->b << " " << test->c << endl;delete test;return 1;
switch和case语句:
#include <stdio.h>
int main(){int a;printf("Input integer number:");scanf("%d",&a);switch(a){case 1: printf("Monday\n"); break;case 2: printf("Tuesday\n"); break;case 3: printf("Wednesday\n"); break;case 4: printf("Thursday\n"); break;case 5: printf("Friday\n"); break;case 6: printf("Saturday\n"); break;case 7: printf("Sunday\n"); break;default:printf("error\n"); break;}return 0;
}
printf()函数中的格式串格式为:
[标志][输出最小宽度][.精度]类型。 其中:方括号[]中的项为可选项。
类型
类型字符用以表示输出数据的类型d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀Ox)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
2)标志
标志字符为 -、+、#
- 结果左对齐,右边填空格+ 输出符号(正号或负号)#对o类,在输出时加前缀o; 对x类,在输出时加前缀0x;
- 输出最小宽度
用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(当最小宽度数值以0开头时)。 - 精度
精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
综合以上,可以看出,%04x 表示按16进制输出数据,最小输出宽度为4个字符,右对齐,如果输出的数据小于4个字符,前补0,如:
printf("%04x", 100 ); //输出0064 100的16进制数是64
//STM32单片机中参考例文
wf =(ww * 4096 + mm * 256+ uu * 16 + vv) / 256.0;
sprintf((char*)shou,"%0.3f",wf);
LCD_Fill(230,310,430,326,WHITE);
LCD_ShowString(230,310,200,16,16,shou);
ubuntu下如何运行c++
用下面的命令运行该first.cpp文件:
g++ first.cpp -o test
./test
windows下VS2015运行c
https://www.cnblogs.com/yankyblogs/p/7058036.html
参考文献:
向以下文章发布者表示感谢
返回多个值:https://blog.csdn.net/onlyou2030/article/details/48174461
函数调用:https://www.cnblogs.com/biyeymyhjob/archive/2012/07/20/2601204.html
二进制十六进制移位:https://bbs.csdn.net/topics/392005545?_u_u_u=0.4370113343466073
指针传递动态参数:https://blog.csdn.net/sinat_35803474/article/details/76686061
C/C++常用函数总结以及在ubuntu和vs中运行相关推荐
- excel函数提取计算机登录名,EXCEL常用函数应用实例:如何提取姓名中的姓
Excel函数一共有11类,分别是数据库函数.日期与时间函数.工程函数.财务函数.信息函数.逻辑函数.查询和引用函数.数学和三角函数.统计函数.文本函数以及用户自定义函数.对于很多人来说,并不需掌握深 ...
- linux bash函数里面调用命令行,Linux-在gnome-terminal -x中运行bash函数
您可以将其与export -f一起使用,就像@kojiro的上面的注释中指出的那样. # Define function. my_func() { // Do cool stuff } # Expor ...
- (转)postgis常用函数介绍(一)
http://blog.csdn.net/gisshixisheng/article/details/47701237 概述: 在进行地理信息系统开发的过程中,常用的空间数据库有esri的sde,po ...
- [转载] NumPy 基本操作(ndarray通用函数 / 常用函数)
参考链接: Python中的numpy.cosh ndarray通用函数 / 常用函数 一.ufunc:numpy 模块中对 ndarray 中数据进行快速元素级运算的函数,也可以看做是简单的函数(接 ...
- C/C++调用java---JNI常用函数
C/C++调用java---JNI常用函数 从原始类数据的缓冲区中加载类. 参数: env:JNI 接口指针. loader:分派给所定义的类的类加载器 ...
- Python常用函数及常用库整理
简单整理一下一些常用函数,方便自己查阅. 目录 文件操作 文件夹/目录 文件 数据格式 链表 类 特殊函数 一些常用函数 常用库 tqdm进度条库 tqdm模块参数说明 常用函数使用方法 yacs参数 ...
- oracle中常用关键字,oracle常用函数及关键字笔记
--函数及关键字-- 1.trim,ltrim,rtrim 去除字符,无指定默认去除空格 SELECT TRIM('a' FROM 'aafhfhaaaaaaaa'), LTRIM('aafhfhaa ...
- Python 的列表运算和列表常用函数
Python 的列表运算和常用函数 1. 列表的运算 1.1 列表相加 1.2. 列表相乘 1.3. None.空列表和初始化 1.4. 列表的比较 1.5. 运算符 in 2. 列表的常用函数 1. ...
- mysql中常用函数与存储过程的创建
mysql中常用函数与存储过程的创建 常用函数汇总 数学函数 字符串函数 日期和时间函数 条件判断函数 系统函数 加密函数 其他函数 自定义函数 自定义变量的声明和赋值 基本语法 实例 存储过程 事务 ...
最新文章
- 活动报名|“悟道之巅:AI创新应用大赛”发布会——体验未来技术,赢取百万奖金...
- 2018刑侦推理 java_2018年刑侦科目推理试题
- C语言字符5,C语言编程(练习5:字符串与字符串函数)-Go语言中文社区
- Win11系统如何恢复隐藏文件
- 机器学习实战6-sklearn训练决策树实现分类和回归
- Go源码里的 //go: 指令集眼熟嘛?都是干嘛的?
- 中国塑料瓶和容器市场趋势报告、技术动态创新及市场预测
- Comparable与Comparator对比
- Set,Map数据结构
- 鸿蒙系统在哪里,“安卓系统”和“鸿蒙系统”区别在哪里?网友:根本就是一个天上一个地下...
- Vue实现打印机接口打印组件
- 安装VMware15.5+安装win10虚拟机操作系统(非常详细)
- matlab影像阿伯斯投影,D3.js 世界地图(一)投影方式
- Java MD5 加密工具类 生成32位加密码值
- 墨画子卿第一章第9节:指教
- 护眼色RGB值和HSV值
- Spring Boot(二):整合 JPA 及 事务控制
- gif一键抠图 在线_一款支持智能抠图、钢笔抠图的在线抠图工具上线了 速抠图 sukoutu.com...
- 下载网易云音乐的MV
- OpenCV | 直线拟合fitline函数(Python)
热门文章
- 氧含量测量方法:燃料电池法
- Text to face:寻找黛玉-从语言描述到人脸图像生成
- Scaner和顺序语句
- 全球及中国玄武岩纤维市场竞争格局分析及发展前景预测报告2022-2028年版
- Hadoop2.x与Hadoop3.x的默认端口变化
- 互联网营销的技巧方法和套路!
- Java实战干货分享
- PTA乙级 1068 万绿丛中一点红——20分
- word批注怎么删除计算机名字,【2人回答】Word批注中的名字怎么删除?-3D溜溜网...
- 论文阅读—图像分割方法综述(三)(arXiv:[cs:cv]20200410)