c/c++学习笔记
草莓味的c
你喜欢吃橙子吗?
展开
-
指针与函数
【指向函数的指针】定义: 数据类型 (*指针变量名)(函数参数表列);如果要用指针调用函数的话,必须先使指针变量指向该函数eg:int *p(int a1 ,int a2);p=max;c=(*p)(a,b);【函数的返回值是指针型,即地址】返回指针值的函数定义形式:类型名 *函数名(参数表列);eg:int *a(int x,int y){}a是函数名,这个函数名前有个“*”,表示此函数是指针型函数(函数返回值是指针)。最前边的int表示返回的指针是指向整型变量的原创 2021-02-20 09:44:08 · 71 阅读 · 0 评论 -
指针与数组之间的难舍难分
数组名数组名不代表整个数组中的全部数据,只能表示为数组中首元素的地址,就是一个指针常量。因为数组属于顺序表,逻辑上相邻的元素物理上也相邻。(实参数组名表示该数组首元素的地址,而形参数组是用来接受实参传递过来的地址的)用指针引用数组元素如果指针 p 指向数组 a 的首元素,数组中序号为 i 的元素可以 *(p+i)这样表示,或者 *(a+i)也可如果指针 p 已经指向了数组中的一个元素,那么 p+1表示同一个数组的下一个元素,但是要理解的是,这里的 +1并不只是单纯的+1,而是一个.原创 2021-02-19 17:54:24 · 140 阅读 · 0 评论 -
简单理解指针
直接把指针理解成地址,没有任何问题。指针变量的意思就是存放地址的变量。int *point_1,*point_2//表示定义了两个指针变量,他们指向的变量是int型的//此处的“ * ”只表示point_1这个变量是指针变量,point_1是指针变量名printf("%d",*point_1);//输出指针变量point_1所指向的整型变量的值//此处的“ * ”表示“指向的对象”,此处的“ *point_1 ”表示point_1所指向的变量赋值时:point_1=&a;//po原创 2021-01-31 17:36:43 · 98 阅读 · 0 评论 -
【图解】指针实现两个整数降序输出(企图改变指针形参的值来改变指针实参的值)
用指针变量作为函数参数的方式:主函数int main(){ void swap1(int *p1,int *p2); void swap2(int *p1,int *p2); int *point_1,*point_2,a,b; printf("请输入a、b:"); scanf("%d,%d",&a,&b); point_1=&a;point_2=&b; if(a<b){ swap2(point_1,point_2); } printf("a=原创 2021-01-31 17:01:39 · 1052 阅读 · 0 评论 -
VC++6.0奇奇怪怪的地方——变量明明定义了,却提示未定义?
printf在变量前,报错提示变量未定义? printf("请输入年月日:(年,月,日)"); int year,month,day; int flag,days=0; scanf("%d,%d,%d",&year,&month,&day);修改printf位置int year,month,day; int flag,days=0; printf("请输入年月日:(年,月,日)"); scanf("%d,%d,%d",&year,&month,&原创 2021-01-29 17:14:36 · 1564 阅读 · 1 评论 -
判断一个数是否为素数(质数)
合数n分成两个数相乘,一个会<=n/2,一个>=n/2int sushu(int n){ int flag=1,i; for(i=2;i<=n/2&&flag==1;i++){ if(n%i==0) flag=0; } return flag;}运行结果:若n不能被2到根号n之间的任一整数整除,则n必为素数void sushu(int m){ int i; double k; k=sqrt((double) m); for(i=2;i原创 2021-01-25 15:30:10 · 166 阅读 · 0 评论 -
VC6.0 建立项目
类似Java中一个包里有好几个.java文件,但只有一个主函数。在VC中要如何实现呢?建立项目。建立工作区不自己建立的话,系统自动建立默认的工作区,其创立的工作区文件名称为你自己创建的项目的名称,文件后缀为.dsw(新建—>>工作区)建立工作区后:建立工程(右键)或者直接新建选择工程选择Win32 Console Application(即创建一个控制台程序)“确定”---->>“完成”(按自己需要)结果为:新建—>>文件—>>C原创 2021-01-24 15:49:30 · 676 阅读 · 0 评论 -
排序与查找
冒泡排序(咕噜咕噜)思想:从头开始,两个数两两比较并交换(不一定都交换)这叫做一趟循环。n个数排序,就要n-1趟循环,每趟循环后,就确定一个数的最终位置(若是升序排列,第一趟就把最大的那个数放在了最后一个位置)第一趟循环,需要比较n-1次(拿第1个数和后面n-1个数比较,就是n-1次)第 j 趟循环,就是已经确定了 j-1 个元素的位置,所以剩了n-(j-1)个需要比较的元素所以第 j 趟需要比较 (n-(j-1)-1)=n-j 次例:对10个数升序排列(冒泡) #include<s.原创 2021-01-18 20:21:14 · 106 阅读 · 1 评论 -
链接时的两种错误:LINK : fatal error LNK1168和1104: cannot open Debug/xx.exe for writing或file “Debug/xx.exe“
**环境:**VC**错误发生的情况:**调试结束想要再次调试时原因:解决方法:看了很多说是强制关闭.exe文件的,我关不掉…之前我就直接把VC给关了,一次一次的很麻烦简单的方法:用管理员身份打开VC即可...原创 2021-01-12 10:36:27 · 490 阅读 · 0 评论 -
关于c语言中int main()返回值为0的问题
没加return 0;程序还是正常运行?我是在Visual C++6.0的环境下运行的程序,没加return 0;程序正常运行。原因:在Visual C++6.0编译环境下,如果没有加return 0;系统默认加上,但是其他编译环境不确定。(Visual Studio是可以的)返回值写什么整数都可以吗?我还真是这么以为的。但我以为真的是我以为。一位对待问题很严谨的朋友关于这个问题给我甩来了几张截图:代码正确,不加return 0;的情况 代码正确,返回值为任意值代码错误&&am原创 2021-01-09 22:50:14 · 2891 阅读 · 1 评论