• C程序设计语言笔记1.导言


      C之前上学学过,但是就会点基本语法,连指针都不会,根本就不能算会C。打算以C语言他爹Ritchie先生的C程序设计语言第二版为教材,fedora11下gcc编译器,gedit做编辑器把C语言重新学习一下。

      导言部分主要是简单介绍是一个C语言的快速入门。

      首先是传统的Hello world程序,这个没啥说的:

      

    #include <stdio.h>

    main()
    {
    printf("hello world\n");
    }

    在gedit中编辑保存为cpro.c后,控制台输入“gcc cpro.c",然后./a.out即可运行。

    1.gcc如果要提示警告,可加参数-Wall。但是比较奇怪的是,如果函数调用时参数类型不符,居然也能编译过,但是其他朋友说他们机器是不行的,此问题有待查询,目前未搜到答案

    2.每次都输入"gcc cpro.c"和"./a.out"运行太费事,可以编写shell脚本运行,方法gedit runc.sh,输入

    gcc cpro.c -Wall
    ./a.out

    之后只要运行sh runc.sh即可运行。

    3.C语言中函数默认返回类型为int,但是不写return也不管。


    然后是常量变量问题:

    1.要注意#define haha 1000,末尾是没有分号的,这个容易顺手写错,写错后编译器会报错。

    2.C原先没有bool型,要用int型,貌似C99标准中加入了stdbool.h就可以用了。

    *EOF在linux中是ctrl+D,这个调试程序的时候经常用到。


    再往下是数组,没字符串很痛苦,char s[]很不习惯。


    最后是函数,函数中提到外部变量。外部变量在函数中使用应加extern显式声明一下,有两种例外情况:

    1.如果外部变量定义在使用之前,可以不用extern声明。

    2.如果变量在一个文件中定义,多个文件中使用,则需要用extern将使用的变量与之定义关联,通常放于头文件中。

    3.void aa()和void aa(void)一样,但是ANSI C中,空参数表必须用void显式声明。


    这个貌似是翻转字符串的练习题,有BUG,就写个大概意思

    #include <stdio.h>

    #define maxc 1000

    void reserve(char k[],char rk[],int len);

    int main()
    {
    char c;
    char k[maxc],rk[maxc];
    int i=0;
    while ((c=getchar())!=EOF)
    {
    if (c!='\n')
    {
    k[i]=c;
    i++;
    }
    else
    {
    k[i]='\0';
    reserve(k,rk,i);
    printf("%s\n",rk);
    i=0;
    }
    }
    return 0;
    }

    void reserve(char k[],char rk[],int len)
    {
    int i=0;
    while (k[i]!='\0')
    {
    rk[len-i-1]=k[i];
    i++;
    }
    rk[len]='\0';
    }

    计划一个月时间看完,平均一天要看6页左右,目前是5号,刚好看完第25页。

  • 相关阅读:
    Codeforces Round #783 (Div. 2)
    转:Shell 获取Tomcat进程号
    转 :linux下tomcat的shutdown命令杀不死进程
    ta加斜线
    JVM
    Arthas
    swiper加载动态加载网络数据后,不能正常轮播,循环;reacrNative中使用reactnativeswiper
    CSS3选择器
    vue 中vhtml指令绑定的元素样式不起作用
    PHP程序员进阶学习书籍参考指南
  • 原文地址:https://www.cnblogs.com/punkrocker/p/2312634.html
Copyright © 2020-2023  润新知