今天学点东西,拿指针开刀,我是不会告诉你是因为我上课的时候没听明白,我觉得上课就听明白的人一定是天赋哥!!!(网上的老师太腻害了推荐b站的c语言编程学习)

首先明白指针变量是个啥,我不用太官方的话了,为了简单易懂就直接一点啦,变

重点来了:指针变量就是保存其他变量(可以是普通的变量也可以是指针变量)的地址

int* p;

一个指针变量就长这样不过这个指针变量没有初始化,是一个野指针(不是好东西)。

指针变量也是有类型的但它们的大小都一样

#include<stdio.h>
int main(){
printf("%d\n",sizeof(int*));
printf("%d\n",sizeof(char*));
printf("%d\n",sizeof(short int*));
printf("%d\n",sizeof(float*));
printf("%d\n",sizeof(double*));
return 0;
}

在32位上是4个字节,在64位上是8个字节(因为是保存地址,地址的长度代表指针的保存的长度)

ok 接下来来讲一下 指针的符号和最最简单的运用

*这是一个解引用的符号
如果不理解那是不是因为你平时看到的定义指针变量的是这样的
int *p=NULL;
让你感到迷糊 换一个写法
int* p=NULL;
这就好理解多了
int*是定义指针的类型,而p是指针变量
&取地址符,这个不多讲,都懂的啦

了解基本的操作来写个最简单的

#include<stdio.h>
int main(){int a=200;int* p=&a;printf("%p\n",&a);printf("%p\n",p);
return 0;
}

二者的输出一样的,记得要写成p=&a不可以写成p=a;p保存的是地址不是a的值

可以通过指针来改变指针保存的地址中的值

#include<stdio.h>
int main(){int a=200;int* p=&a;*p=1008611;printf("%d",a);
return 0;
}

这里就用到了解引用,*p就是的对a地址中的类容进行操作了。

接下来就是指针类型的区别了,你一定要明白基本数据类型所占的空间大小,看我演示给你看看

#include<stdio.h>
int main(){int a=200;char* p=&a;*p=1008611;printf("%d",a);
return 0;
}

就变成这样了为啥呢,应为数据类型为int 占了4个字节而char类型的指针就操作和char空间长度一样的范围,也就是一个字符的长度。而如果是int*的话就可以操作4个字符的空间完成修改。

#include<stdio.h>
int main(){int a=200,b=200;char* p=&a;int* k=&b;*p=1008611;*k=1008611;printf("%d\n",a);printf("%d\n",b);
return 0;
}

至于为啥a给改成的227俺就没查内存了就不讲了,你只要知道是因为a的空间是4个字符而*p就改了一个字符空间的内容就ok了。

还有指针变量的跨度,这个与类型也是大有关联啊

#include<stdio.h>
int main(){int a=200,b=200;char* p=&a;int* k=&a;printf("%p\n",&a);printf("%p\n",p+1);printf("%p\n",k+1);
return 0;
}

char类型的指针+1地址就老老实实的+1而int类型的指针+1地址就直接+4,这就是跨度,+1就是跳到下一个要处理的数据,char类型长度为1字节地址+1就到了下一个数据了int长度为4字节要跳到下一个int数据地址要+4.

ok指针的基本讲解到此结束了啊,指针很有用的,把基础打好后面用起来才会得心应手。

本人也只是一个初学者有不对得地方可以私聊我指教我一二,我不怕错就怕自己找不到.

over。

下午发现有关于文件的作业哎呀,还不会啊(老师您实在是太快了),现学现买,学不好也卖不好555555,

刚好上面学了指针搞起来也没那莫困难,

几个基本的函数格式与运用

1 FILE* fp;文件指针重要的不得了
2 fopen("文件的地址","你想要的操作方式");返回的是指向文件的地址
操作方式有好多的。
所以一般是 fp=fopen("件的地址","你想要的操作方式")
3 fclose(文件指针)关闭你打开的(文件指针所指向的文件)
4 fgetc(fp)从fp指向的文件里面读一个字符
5 fputc(ch,fp)把ch字符放到fp所指向的文件
6 fgets(str ,n,fp)从fp指向的文件读出n-1个字符,因为最后一个是\0
7 fputs(str,fp)把str数组的内容写入到fp所指的文件当中。

来个小题稍微的练一下哈

从磁盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。

#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){FILE *in,*put;char b[1000];if((in=fopen("D:\\xunlei\\tap.dat","r"))==NULL){//我不理解为啥我的一定要打\\一个\不可以printf("无法打开");exit(0);}if(put=fopen("D:\\xunlei\\text.dat","w")==NULL){printf("无法打开");exit(0);}fgets(b,1001,in);int h=strlen(b);for(int p=0;p<h;p++){if(b[h]>=97&&b[h]<122){b[h]=b[h]-32;}}printf("%s",b);fputs(b,put);fclose(in);fclose(put);return 0;}

晚上搞了几个题一起来看看

题目描述

给定有n个整数(可能为负整数)组成的序列a1,a2,...,an,求该序列连续的子段和的最大值。如果该序列的所有元素都是负整数时定义其最大子段和为0。

例如,当(a1,a2,a3,a4,a5)=(-5,11,-4,13,-4-2)时,最大子段和为11+(-4)+13=20。

输入

输入数据有多组测试数据。每组测试数据有两行:第一行整数个数N,第二行为N个整数,每个整数之间用一空格隔开。

输出

每个用例,用一行输出最大连续子段和。

样例输入

6
-2 11 -4 13 -5 -2

样例输出

20

这本是一个递归的题奈何我没往递归的方向去做所以写的那叫一个啦好在还是做出来了一起看看我的炒鸡写法

#include<stdio.h>
int main()
{int n;long long a[100000];while(~scanf("%d",&n)){   int i=0;for(int u=0; u<n; u++){scanf("%lld",&a[u]);if(a[u]<0)i++;}if(i==n){int max=0;printf("%d\n",max);}else{long long max=a[0];for(int g=1;g<n;g++){//最大的也有可个是单个的数所以我直接找最大的把它赋给maxif(a[g]>max)max=a[g];}for(int k=0; k<n; k++)//这是定段的第一个{long long sum=a[k];for(int l=k+1; l<n; l++)//这是找段的末尾{sum=sum+a[l];if(sum>max)//中间发现比原来的最大段子和大就把它赋给maxmax=sum;}}printf("%lld\n",max);}}return 0;
}

思路简单的不行就是复杂度有亿点点高哈,

大概思路  多组输入开头输入的同时判断是否全为复数如果是的直接输出0,如果不是就定义一个max,把当前判断的最大段子和赋给max,最后输出。(哈哈哈嗝)

等过几天我把学长的代码看懂了再讲个好的,这个太拉了。

近期,全国ICPC和CCPC赛事正在举行,好奇的jz学姐也想看看这些比赛的题,但是她不好决定看哪个比赛,于是她决定奇数日看ICPC,偶数日看CCPC,现在输入一个x,让你判断今天看ICPC还是CCPC?请你输出ICPC或者CCPC

学姐yyds水的好呀我太喜欢的,谁和以拒绝2分钟的水题。(反正我不行)

#include<stdio.h>
int main()
{long long n;scanf("%lld",&n);if(n%2==1)printf("ICPC");elseprintf("CCPC");return 0;
}

咔嚓没了(开心的鸭皮)

wcp学长非常喜欢字符串,于是乎他也想考考你是不是也学了串串,现在他给定你两个字符串s和t,如果t是s的子串(s包含t)则输出Yes,否则输出No

输入

两个字符串s和t

输出

Yes或No

样例输入 复制

sss
s

这题的方法就多了解题的思路就是看你咋判断包含的

来康康我是咋写的吧。

#include<stdio.h>
#include<string.h>
int f(char x[],char v[]){
int h=strlen(x),m=strlen(v);//得知道长度
char* p=NULL;//搞个指针,今天学的用一练一下下
int i=0;
if(m>h)//都没人家长咋包含人家,返回0.return 0;
else{
for(int l=0;l<h;l++){if(x[l]==v[i]){i++;p=&x[l];//找到了与v[]第一个相同的了用指针把它抓起来for(int u=1;u<m;u++){//v[]往后推一个一个验证if(p+u>&x[h-1])//别越界了这不好break;if(*(p+u)==v[u])//指针也往后推看是否对应的,相同就i++i++;else{i=0;break;}}if(i==m)//i==m就带表从p到p+i-1都相同,也就是包含return 1;//返回1}
}
}
return 0;//程序走到这就代表不包含返回0,
}int main()
{char x[10000],v[10000];//两个字符串scanf("%s",x);//输入scanf("%s",v);f(x,v);//把它两丢到函数里int z=f(x,v);if(z==0)printf("No\n");elseprintf("Yes\n");return 0;
}

今天不搞了 ,小命还是有点重要的啊,珍惜身体,拒绝熬夜和拼命爆肝。

学习日记(小阳人快好了,啊哈哈哈)12/27相关推荐

  1. 众人皆阳我独阴,分享与小阳人共同生活一周体验!

    文 | 闲欢 来源:Python 技术「ID: pythonall」 国家放开疫情管控已经三周了,想想这三周发生的事情宛如梦幻一般. 我们大部分人除了每天数羊之外,还经历了抢药.抢抗原.抢酒精等等双十 ...

  2. 深度学习如何又好又快? Google发布最新《高效深度学习: 更小、更快、更好》综述...

    深度学习模型在实际生产系统中面临一系列问题,比如模型大小.训练时间等,本文这对深度学习的效率问题做了全面的综述,值得关注! 深度学习已经在计算机视觉.自然语言理解.语音识别.信息检索等领域掀起了一场革 ...

  3. 小黄人变声专家 把自己声音变成小黄人的软件 小黄人快跑

    小黄人变声专家软件 下载(音频变调变速器-小黄人软件.zip)免费 链接: http://pan.baidu.com/s/1gd2Mzvl 密码: 5nzg 自行解压,双击wuxia.exe运行 1将 ...

  4. 云小课|VMware备份上云学习专列来了,快加入吧~

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:华为云云备份CBR ...

  5. 考拉小巫的英语学习日记

    考拉小巫的英语学习日记读书笔记... 小巫英语笔记  在无比枯燥和受挫的时候,我是如何把自学计划坚持到底的: 在这本书里,我想分享我考过的所有英语考试的备考方案.计划安排.所用书籍及资料,想分享我学习 ...

  6. 读《考拉小巫的英语学习日记》有感

    <考拉小巫的英语学习日记>不仅仅是本分享学英语过程的书,更是本励志的书,具有生活哲学性. 她教会了我如何与朋友相互扶持:友谊和爱情一样,是靠缘分的.朋友关系是不是好,也许和时间的长短并没有 ...

  7. 小菜鸟的C++游戏编程学习日记(一)

    小菜鸟的C++游戏编程学习日记(一) 作者:杨帆参考书籍:Beginning Game ProGramming(中文版)学习时间:2016.7.26 以下附所敲源代码与部分注释: //编译环境 vis ...

  8. opencv学习日记——娜扎小姐姐与猫咪的图像融合,超美哈哈哈

    opencv学习日记--图像的比较和融合,超美哈哈哈 图在后边哦,不看代码也要看看图,很酷,opencv绝了!!! #include<iostream> #include<openc ...

  9. 安卓开发学习日记第四天番外篇_用Kotlin炒冷饭——越炒越小_莫韵乐的欢乐笔记

    安卓开发学习日记第四天番外篇--用Kotlin炒冷饭--越炒越小 前情提要 安卓开发学习日记第一天_Android Studio3.6安装 安卓开发学习日记第二天_破坏陷阱卡之sync的坑 安卓开发学 ...

最新文章

  1. html5画布画点,在HTML5画布上绘制一个点
  2. Retrofit2.0和Rxjava结合使用的简单记录
  3. 【机器学习】Logistic Regression 的前世今生(理论篇)
  4. Radware为夏威夷电信公司全新的DDoS攻击缓解服务提供支持
  5. django -- 实现ORM登录
  6. JavaWeb笔记02-Tomcat
  7. 6-5-2:STL之stack和queue——双端队列deque
  8. Spring Boot + MyBatis + MySQL 实现读写分离!
  9. 不同调制方式的包络和功率谱
  10. linux 可执行文件反编译,如何反汇编,修改,然后重新组装一个Linux可执行文件?...
  11. ubuntu里面控制器放大缩小屏幕
  12. 【SharePoint】SharePoint页面中添加webpart时提示找不到类型或该类型未注册为安全类型解决方案
  13. 腾讯云Ubuntu服务器挂载阿里云盘
  14. ubuntu硬盘序列号怎么查询_linux查看设备和硬盘序列号 ip mac地址
  15. 软件产品选型测试/POC测试
  16. PS新手教程:轻松掌握四种扁平化设计风格
  17. oracle逗号隔开行转列_oralce逗号分割变多行-Oracle
  18. 《辉煌优配》科技股强势引领A股反弹 沪深两市日成交额再超万亿元
  19. 有一个函数 x , x大于1 ,y等于 { 2x-1 1大于等于x小于10 3x-11 x大于等于10 写一段程序,输入x,输出y。
  20. 初学者学Java常遇到的问题,我都给你回答了!

热门文章

  1. HHsuite使用初探
  2. 雷达实验B 超外差式接收机实验
  3. 租电脑考计算机二级.租什么配置,校园租电脑套路深,这个配置要6块钱一天,还电脑的时候还有陷阱...
  4. Login with PayPal DEMO
  5. Linux上SVN的搭建使用(ab****43ab****43)
  6. 雷达花火后辈越来越多,鬼哥为什么要选择三度空间?
  7. 打印项目--安卓平板或手机改造成服务器--资料链接
  8. VS2005编译OpenGL红宝书示例代码
  9. html中怎么输出函数,获取onclick事件来运行一个函数并在html元素中输出它
  10. Python代码学习之给图片添加文字或图片水印