热门IT资讯网

Time life C

发表于:2024-11-24 作者:热门IT资讯网编辑
编辑最后更新 2024年11月24日,文化、时代、生活 仿佛还在昨天。C语言严谨的来说是一门面向过程的语言,面向对象、面向过程到底是怎样,困扰了我一年两年的时光。C的好处灵活性、效率高这些就不一一介绍来了,C++与C其实并不是一门语言,C

文化、时代、生活 仿佛还在昨天。
C语言严谨的来说是一门面向过程的语言,面向对象、面向过程到底是怎样,困扰了我一年两年的时光。C的好处灵活性、效率高这些就不一一介绍来了,C++与C其实并不是一门语言,C++兼容C,C++面向对象。就像起床,C就会定义怎样睁眼,怎样动胳膊等等,而C++简答说把这些过程存储了,函数调用,换句话说C++的标准库要比C强大多的。
既然都这样了还学啥C语言,直接学C++不就好了吗?这也完全没问题,直接学习C++也是没有问题的,就像说的那样这是两种语言,只不过关联程度大,但是大多数人还是会从C学起来,因为可以了解每一个过程,灵活性算是语言中很强的,可以随心所欲写自己想要的过程,对于优秀的程序员对封装下面都是很清楚,出现的问题调试都是在这个层面完成的,所以C基础牢固的人与没接触过C的人一起学习C++考虑的层面,涉及到的程度是不一样的,久而久之差距会越来越大。
说了那么多废话就是想说,学习C++可以没C的基础一样学习,C语言可以学,也可以不学,但是学好了之后你会在编程上看到更多深层面知识。
学习C之后,从基础学习到函数却不知道记录什么样的重点与大家分享交流,留下的是一堆文本代码,学习C这段时间最大的感触认真两个字的确不简单,最近也逛一些论坛一起来看几个有意思的小故事
1、关于scanf

scanf("%f %f",&a,&b);scanf是接收用户数据的关键字类似于python中raw_input函数,读取不检查边界的!会出现内存访问越界。而且不需要引入stdio.h(inputout)头文件也可以使用与Printf函数是一样的。scanf接收格式很严格要求,如果中间空格,在命令行输入时候必须也是空格,是逗号就得输入逗号。这个地方本人就经常犯低级的错误。普及一下%d(整型1,2,3),%f(浮点型1.0,2.0,3.0),%c(字符串),%f最为有意思,也是比较灵活的double与float类型都用%f接收sizeof()这个函数用来查看这些类型占几个bit位,1byte=8bit 一个字节8位,**注意并不是int就一定是占4和字节32位,这是不科学的,有的书上是2个字节,有的是4个字节,其实占几个字节根据根据系统来的**,并不是C定义好的。 

再来说两个函数pow这个函数在后面全被Double类型取代了,输入输出都是double,求立方的函数,自己写的源码贴出来供大家参考,本人代码风格是谭老师风格,因为学的他的书,所以有时候代码不符合大家感觉

include void  main(){    double power(double a,double b);    double x,y;    scanf("%lf,%lf",&x,&y);    printf("%lf\n",power(x,y));}double power(double a,double b){       double f=1;    int i;//  printf("%f,%f",a,b);    for(i=0;i

仅供大家参考,那么再来个有意思的二分法与冒泡排序,其实本人挺喜欢数据姐与算法,因为好玩而且实用,毕竟是程序的灵魂如下

本人只会有序的冒泡排序,下面是自己初始化一个数组,下面是排序+循环

#include void main(){    int i,j,l,d;    static int a[5]={5,1,3,6,2};    int b[5];    for(i=0;i<5;i++)    {        for(j=i;j<4;j++)        {            if(a[i] > a[j+1])            {                b[j] = a[j+1];                a[j+1] = a[i];                a[i] = b[j];            }        }        printf("{%d}",a[i]);    }    printf("\nPlease enter find numbers:\n");    scanf("%d",&d);    for(l=0;l<5;l++)    {           if(d == a[l])        {            printf("您查询%d是本数组中的元素,排在数组中第%d位",d,l+1);        }    }    printf("\n");}

下面再来个二分法查找

#define M 7#include void main(){    static int a[M]={-12,0,6,16,23,56,80};    int n,start,middle,finlly,found;    start = 0;    finlly = M - 1;    found = 0;    printf("请输入:\n");    scanf("%d",&n);    while(start <= finlly)    {        middle = (start+finlly)/2;        if(n == a[middle])        {            found=1; break;        }        else if(n > a[middle])            start = middle+1;        else            finlly = middle -1;    }    if(found==1)        printf("您查找%d",middle+1);    else        printf("没有查找到%d",n);}

文本粘贴上来的 格式有点不好看,讲解就么意思不会的可以讨论 毕竟思路是一样的 百度也有大量学习代码

0