精华内容
下载资源
问答
  • 记得上大学第一年刚接触C语言课的时候,老师在讲如何在屏幕上输出信息时候,指着黑板说我们要用这个函数——“print夫”!...读了这么多年的“print夫”,那么printf到底是什么意思呢?C语言标准...

    ee0a24bde1b0007fb63f17483d6df7eb.png

    记得上大学第一年刚接触C语言课的时候,老师在讲如何在屏幕上输出信息时候,指着黑板说我们要用这个函数——“print夫”!当时听着那叫一个别扭。虽然心里很想笑,但一想到老师怎么也比自己的水平高呀,就默默地忍了。

    学了很多年C后,越来越觉得知其然必须得知其所以然,刨根问底,深入了解来龙去脉,是提高自身能力,通往专家之路的好方法。读了这么多年的“print夫”,那么printf到底是什么意思呢?C语言标准库函数一个个长得都非常奇怪,scanf、malloc、sqrt,这些函数名字看上去似是而非,像是单词又查不到。

    跟大家分享一下,C语言标准函数库里面的函数名字到底是什么含义。

    scanf();
    printf();

    这两个函数是在说scan formatted data和print formatted data, 如果当初C语言标准委员会的大神们能够想到照顾我们后辈,把函数名字写的长一点,写成scanFormatted()和printFormatted() 也就不会让我们后来者如此摸不着头脑。 进一步解释一下什么是formatted,这个词的意思是格式化的,也就是指有固定格式的数据,比如我们使用键盘输入了字符abc,其实程序里只接收到了一串数字,如果不指明这些数字代表什么,那么程序并不知道应该如何处理这些数字。为了告诉程序,我们输入的这些数据是想表达什么,也就是需要告诉程序,我们输入的数据应该以什么样的格式进行处理,需要在调用函数的时候,使用一种能被scanf()函数接受的方式,把数据格式告诉scanf()函数。

    scanf("%d", &a); // 输入的数据是10进制数(decimal integer),存入到变量a中

    “d”是decimal integer的缩写。除了“%d”还有“%i”——integer,“%u”——unsigned decimal integer等等。请参考这里

    malloc();
    calloc();

    相信大多数人对于malloc()函数是很熟悉的,当程序在运行中所需要的内存空间大小不固定的时候,就可以用malloc()来动态的获取内存空间。malloc是memory allocation的简写,见名知意,就是内存分配的意思。calloc()是一样的用途,只不过在malloc()函数的基础上增加了一些功能,calloc()函数在需要为结构体数组分配空间的情况下,使用起来更方便,不仅能获取相应的内存空间,calloc还会带帮我们把申请来的内存空间初始化为0。

    给个例子:

    /* calloc example */
    #include <stdio.h>      /* printf, scanf, NULL */
    #include <stdlib.h>     /* calloc, exit, free */
    
    int main ()
    {
      int i,n;
      int * pData;
      printf ("Amount of numbers to be entered: ");
      scanf ("%d",&i);
      pData = (int*) calloc (i,sizeof(int));
      if (pData==NULL) exit (1);
      for (n=0;n<i;n++)
      {
        printf ("Enter number #%d: ",n+1);
        scanf ("%d",&pData[n]);
      }
      printf ("You have entered: ");
      for (n=0;n<i;n++) printf ("%d ",pData[n]);
      free (pData);
      return 0;
    }

    calloc是contiguous allocation的简写,意为连续分配一段内存,表示针对像数组这样每个元素紧相邻的内存需求而设计的。不过这样把单词简写的这么简略,仅凭函数名字,即使是英语母语者恐怕也难以理解是什么意思。

    memcpy();
    memset();
    memmove();
    memcmp();

    这几个函数大家从名字应该可以猜到是什么单词的简写:

    memory copy, memory set, memory move, memory comparison,字面意思就很清晰了,不多介绍。

    相应的有:

    strcpy();
    strcmp();

    值得注意的是下面几个函数:

    memchr();
    strchr();
    strrchr();

    这几个函数的功能都很相似,是用来在一段内存里或者一个字符串里找到某个字符第一次出现的位置。

    比如:

    /* memchr example */
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char * pch;
      char str[] = "Example string";
      pch = (char*) memchr (str, 'p', strlen(str));
      if (pch!=NULL)
        printf ("'p' found at position %d.n", pch-str+1);
      else
        printf ("'p' not found.n");
      return 0;
    }

    输出结果为:

    'p' found at position 5.

    所以,可以猜到chr代表单词character。意思是在memory里或者string里寻找character。而strrchr()函数里怎么多出一个r,没错,不是我手一抖多敲出一个r,就是str r chr(),这个函数的功能是从一个字符串的最尾端往前寻找,找到给定字符第一次出现的位置。So 猜出来这个r代表什么单词了吗?r是reverse,反向的意思。从string里反向查找给定的character。

    再看几个常用的数学函数:

    floor();  // 向下舍入
    ceil();  // 向上舍入
    round();  //四舍五入
    sin();  // 不言自明
    cos();  // 同上
    tan();  // 同上
    exp();  // Exponential的缩写,计算e指数
    abs();  // Absolute的缩写,计算绝对值
    sqrt();  // 这是什么?
    pow();  // power的缩写,计算指数
    trunc();  // 向0舍入,这个函数跟floor()的区别是:trunc(-1.3) == -1.0, floor(-1.3) == -2

    这几个数学函数基本都是数学运算的英文单词原封不动,或者去掉末尾保留前几个子母,还比较好理解,唯独sqrt(),很长时间我都以为这是某一个单词的缩写,查过才知道,原来是两个单词——square root。意思已经很清晰了,平方根!

    参考文献:

    Why is scanf called scanf? (Same for printf.)

    scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s

    Difference Between Malloc and Calloc in C

    strchr(), strrchr()

    展开全文
  • 字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。...

    字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

    c1e72b0ee9713286d5b538d1ac0dafe8.png

    但是字符串赋值有一定要求,例如C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此,对字符串的限制方式和对数组的一样,特别是,它们都不能用C语言的运算符进行复制和比较操作。

    字符串赋值方式

    C语言中,字符串的表现形式有两种:一种是以字符数组的形式,如char str[20]="I love china";另一种是以字符指针的形式,如char *str="I love china"。字符串可以赋值给字符指针变量,或者将字符串用字符数组保存。因为c语言没有直接对字符串提供语法糖方面的支持。而且C标准库很多方法处理字符串是以空字符结尾为前提的,这个必须要记住。

    char *p,a='5';

    p=&a; //显然是正确的,

    p="abcd"; //但为什么也可以这样赋值??

    在如上程序中,双引号做了3件事:申请了空间(在常量区),存放了字符串 ;在字符串尾加上了’/0’ ;返回地址。这里就是把返回的地址赋值给了p。

    但是char *p = “hello”;表达式为什么可以,而把p换成数组,然后再赋值就不行了。这是因为字符串常量”hello”出现在一个表达式中时,”hello”表达式使用的值就是这些字符所存储的地址(在常量区),而不是这些字符本身。

    所以,可以把字符串赋值给指向字符的指针p,而不能把字符串赋值给一个字符数组。

    char a[10] = “hello”; 这样也是可以的,这种情况是c语言初始化所支持的。如果写成char a[10]然后 a = “hello” 这样就错误了。同样是a数组,char a[10] = “hello”;这种是数组的初始化,和a[0] = ‘h’ a[1] = ‘e’…是一个道理。

    但是换成char a [10],然后a = “hello”就不行了 “hello”赋值的值是一个地址,而a虽然也有地址,但是这与指针是不一样的,指针的值是地址,而数组的值虽然也是地址,但是却是一个常量,所以不能给常量赋值。 [3]

    我们来测试一下:

    #include int main(){ char *p = "hello"; printf("%s

    展开全文
  • ls-lrt 表示 按修改时间 倒序 列出当前工作目录下的所有文件的详细信息 -lrt 实际上代表了 "-l -r -t" 这三个选项集合。 1)-l 表示开启长列表输出,打开了就会输出文件权限、引用计数、所有者、所属组、...

    ls -lrt 表示 按修改时间 倒序 列出当前工作目录下的所有文件的详细信息

    -lrt 实际上是代表了 "-l -r -t" 这三个选项集合。

     

    1)-l 表示开启长列表输出,打开了就会输出文件权限、引用计数、所有者、所属组、文件大小、修改日期和文件名称这些详细的信息。

    2)-t 以时间排序,最新的文件会排在上面。

    3)-r 表示反向排序、倒序输出。

    4)-x 按列输出,横向排序。

    5)-u 按照文件上次被访问的时间排序。

     

     

    展开全文
  • 时间倒序分页查询,翻页中有新增的数据插入db,导致重复数据,这个有什么好的解决办法没?谢谢大家回复内容:时间倒序分页查询,翻页中有新增的数据插入db,...如果这个意思的话,我建议你分页在客户端做,查询的...

    时间倒序分页查询,翻页中有新增的数据插入db,导致重复数据,这个有什么好的解决办法没?谢谢大家

    回复内容:

    时间倒序分页查询,翻页中有新增的数据插入db,导致重复数据,这个有什么好的解决办法没?谢谢大家

    你说的数据重复是这样么,在翻页的过程中,有人插入了一条数据,然后第一页的最后一条数据被再次分配到了第二页,变成了第二页的第一条输出,这条数据出现了两次?

    如果是这个意思的话,我建议你分页在客户端做,查询的时候加个时间点,小于点击查询按钮的时间的数据会被查出来,然后在客户端进行分页,这样有新数据也不会影响分页,因为新数据根本没有取回来。由于你这个是时间倒叙,所以即使有新数据也不会被看到,不会产生数据遗漏。在数据再次加载的时候,再去取数据,新数据就会被查询出来。

    前段时间刚处理了移动端类似的问题,说下移动端的思路:

    1,首先是分为向下拉(获取最新数据)和向上滑(获取之前数据)

    2,其次在每次向上滑获取之前数据时,我都会传一个id,通过这个id做为条件获取数据。你是时间倒序,那基本可以认定id也是倒序,刚刚传的id应该是之前获取数据中最小的id,除第一次外,以后每次获取数据都是小于这个id的数据

    3,第一次获取数据的时候,因为没有id,所以按顺序获取最前的数据即可。

    希望对你的问题有帮助!

    不好意思竟然是世界上最好的语言。

    而我回答是基于nodejs的。

    不过不影响,理解思路就好。

    -------原答案------

    我在看coding.net的api的时候发现他有两种more的方式。

    语法基于mongoose

    一是通过分页,pagify。比如一页20的话,Model.find(query).skip(page*20 - 20).limit(20)。

    二是用过加载更多,具体来说就是after。我没开发过这样的,不确定mongodb有没有after这样的属性。不过依托于一个sort里的东西的话,还是比较简单的,Model.find(query).sort('-time').where({time:{$gt:TIME}}).limit(20)

    不确定有没有

    如果mongodb有类似于after的话,那就更好了。(笔记time可能会撞车,而id不会)

    Model.find(query).sort('-time').after({id:ID}).limit(20)

    补充coding.net中加载更多的请求api

    GET https://coding.net/api/activities/projects_last?last_id=14959187

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • Python中倒排列是倒序排列的意思。Python中倒序排列的方法:1、数组倒序:原始元素的倒序排列arr = [1,2,3,4,3,4](1)printarr[::-1]---->[4, 3, 4, 3, 2, 1](2)arr.reverse()printarr---->[4, 3, 4, 3, 2, 1]...
  • Python中for i in range(10,0,-1)是什么意思

    万次阅读 2018-11-13 18:28:54
    实际这样的,range(10,0,-1)意思是从列表的下标为10的元素开始,倒序取到下标为0的元素(但是不包括下标为0元素),也就是说list[10]-list[1],转化成range就是相当于range(1,11)的倒序,最后得到的结果[10,9,8...
  • list字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List:L = [12, 'China', 19.998]Python中的List有序的,所以要访问List的话显然要通过序号来访问,就像数组的下标一样,...
  • 1. compose实现compose函数,满足如下操作:f = lambda x: x**2 + 1g = lambda x: 2*x - 1h = lambda x: -2 * x**3 + 3fgh = compose(f, g, h)# equivalent to `f(g(h(n)))`print fgh(5) # ...这个函数倒序遍历com...
  • python 怎么使用enumerate先出一个题目:1.有一 list= [1, 2, 3, 4, 5, ...将 list 倒序成 [6, 5, 4, 3, 2, 1] 3.将a 中的偶数挑出 *2 ,结果为 [4, 8, 12] 。python中关于enumerate()函数问题:(1)显示结果得第一行...
  • dao十进制转二进制遵从版以下规则:权1、将整数部分辗转相除2,将余数倒序排列,即整数部分的二进制数。2、将小数部分辗转相乘2,将乘积的个位数部分正序排列,即小数部分的二进制数。推导过程如下:1、十进制0.25...
  • 本文主要介绍了Python中list[::-1]的几种用法,分享给大家,具体如下:s = "abcde"list的[]中有三个参数,用冒号分割list[param1:param2:param3]param1,相当于start_index...步长为-1时,返回倒序原序列举例说明pa...
  • 思路:观察样例,srf先手和qtc先手的答案就是取了个负号。所以就考虑srf先手的时候获得的得分-qtc得分的最大值。...qtc先手,题目的意思实际上想让你先考虑qtc-srf获得的最大得分,同样的,此时把qtc看成srf即.
  • 展开全部select 表字段名1,表字段名2 from 表名 order by 表排序字段名 desc。...desc表示按“表排序字段名”倒序显示,不加desc,表示正序显示。例如:select * from student where 总学分 in...
  • linux脚本 setenforce什么意思 setenforce是Linux的selinux防火墙配置命令 执行setenforce 0 表示关闭selinux防火墙。 setenforce命令是单词set...shell编程中“esac”是什么意思 shell 的风格,用倒序的字母单词
  • 因为树形dp专题,所以没看出来01背包(重点倒序),倒序这个点之前一直没想出来什么,因为宝物只有一个,和01背包一样的意思(其实我现在我没太想明白既然已经二维了,又为什么倒序呢),状态转移...
  • 声明:网上较好的答案我会直接复制过来。其余的我会按照自己的理解去总结答案*。 附上最新的文档格式,便于按目录查看,(ctrl+鼠标左键会直接...5、 Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思
  • 要打印的九九乘法表样式,这是正序的,可以自己尝试一下打印倒序的...可以尝试一下空格等比较一下就知道是什么意思了public class for4 { public static void main(String[] args) { //外循环控制行数 for (int i =
  • leetcode 2. 两数相加

    2019-09-27 16:47:47
    什么意思呢?就是两个数相加,而且它是倒序的,这其实更容易的。没有所谓的头指针。 什么思路呢,就是先创建一个l3,然后每次进一位的相加,设一个进位标志,直到全部完毕,就这样。虽然中等题,很简单的。 ...
  • UVA11234 Expressions

    2017-05-23 18:54:00
    题目的意思实在读不懂,又把栈变成队列什么的。。只是大体的意思就是把后缀表达式变一下。。 抛开意思,事实上就是依据输入建个树,然后倒序输出。。 拿第一个例子说明;大写代表操作符(+ - × /之类的...
  • 其实sort()方法已经在实际工作中用到很多遍了,可当我仔细推敲,这个sort()方法,什么时候升序排列,什么时候是倒序排列 的时候,还真是有点小懵圈; 先来看一下,官网上怎么说的吧: 这我在W3C上截来...
  • 文章目录写法测试代码降序源码分析升序源码分析倒序源码分析0 到底是什么作用总结 写法 升序标准写法(官方写法),jdk官方默认是升序: < return -1 //意思就是 = return 0 > return 1 官方的源码就是基于这...
  • 在python中会出现[-1]、[:-1]、[::-1]、[n::-1]、[:,:,0]、[…,0]、[…,::-1],他们分别是什么意思呢,这里就来详尽的说一下: 下面的a = [1,2,3,4,5] [-1]:列表最后一项 [:-1]:从第一项到最后一项 原型是[n : m]...
  • 2018.1.18纪事

    2018-01-18 11:37:00
    怎么说呢,这次写个博客记录一下一个有趣的事情,不关系到技术,只是生活里一件有趣的事。  最近写框架苦于没有什么视频资料,文档英文,看起来也有些晦涩难懂。... 当时我的想法,这老哥出这题意思,这...
  • 单链表的逆置

    2017-05-10 21:00:46
    概念:将单链表倒序,即指针倒置,什么意思呢?就是这个意思: 其实就是原来的前驱节点变为后继节点,原来的后继节点变为前驱节点,头节点指向原来的尾节点值得注意的:这里的头结点的处理实现思想:利用头插法,...
  • 单链表反转的实现

    2019-10-16 13:27:30
    链表反转的意思就是输入一个链表,反转链表后,输出新链表的头,换句话说就是原链表倒序输出。 实现链表反转有两种方法,即递归法链表反转和遍历法链表反转。这两种方法在我们面试的时候也面试官比较爱问的一些...
  • 10.25

    2018-10-26 07:26:01
    第一题一个链表的基本应用,只要能看懂题目意思,并处理一个特判就轻松A掉。(而且这次样例还特别良心,虽然小但是体现出了特判。)当然有同学写的直接倒序m输出也不免为一种巧妙的好方法,可能我思想僵化了吧。...
  • 先将读入的s字符串0038,下标0123,,逆序转化为整数组s2,0038的下标4321,前面全0然后各种相加就很简单了,不用考虑什么前缀0啊几位啊,只要考虑个进位就行,s1和s2直接就从第0位开始加,非常方便最后输出记得...
  • linux sort排序操作

    2020-11-10 17:56:51
    sort -u file.txt (这里uuniq的意思) 比如文件里有1 , 2, 3, 4, 5 ,3 到时候排序后就只有一个3了 3. 按照数值大小进行排序 sort -n file.txt (-n代表number) 为什么要强调这个, 因为你发现没有-n选项...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

倒序是什么意思