zoukankan      html  css  js  c++  java
  • c语言基础

    c语言基础

    #include <stdio.h>头文件,就是调用人家写好的一些函数(就是一些功能模块的集合)

    Int main()主函数,表示一个程序的开始。有且仅有一个main函数。

    return 0表示正常退出。

    Int a;232-1,定义一个整型变量,这个整型变量里面存储的是整数。

    a=10给一个整形变量赋值。

    1.如何命名一个变量

    变量名:它是只能由数字,字母,下划线组成的,开头只能是字母或者下划线;比如:

    student_id01 student student01 student_haha01; 合法的变量名    2student; 不合法的变量名

    2.指针,地址

    0x01

    0000...1010

     

     

     

     

     

    int *p;

    p=0x001;

    *p;

    int a=10;

    int *p;

    p=&a;

    *p

     

     

     

     

     

     

    ※编译的四个步骤

    1.预处理   简单的替换,将一些宏定义库函数替换到代码中去。

    gcc -E hello.c -o hello.i

    2.编译   将预处理之后的代码进行词义分析,语法检查。(报错一般出在这个阶段)并且生成汇编代码。

    gcc -S hello.i -o hello.s

    3.汇编   将汇编代码转换成二进制的代码

    gcc -c hello.s -o hello.o

    4.链接   将生成的二进制文件链接成计算机可执行的文件。

    gcc hello.o -o hello

     

    我们编写一段代码,每一个变量都有它自己所在的存储位置。都有哪些存储位置:

          一般存储局部变量

        它的空间比较小,它是由系统自动分配和释放内存的

        int a;//系统分配了四个字节的空间给了a

        一般的局部变量都是存储在栈中的。

        定义在一个函数(就是一个功能模块)中的局部变量,在函数结束时就不能再次使用了,因为它已经被系统回收了。

        定义的全局变量存放在全局数据段,(总之就是不在栈中),它的作用范围是整个程序。

                程序员手动分配内存的变量,调用malloccalloc之类的手动分配内存的函数

    未初始化数据段     又称未初始化全局变量区

    初始化数据段         已经初始化的全局变量

    代码段(正文段)        一些条件语句,代码存放在代码段

     

    int a=0; //全局初始化区,.data

    static int b=20;//全局初始化区,.data

    static   静态的意思,作用,变量b,它被限定在本文件中,不能被其他文件使用。一般来说,它存储在初始化数据段

     

    char *p1;//全局未初始化区 .bss

    const int A=10;// .rodata段,const表示只读,就是说A的值不能改变,或者说A是一个常量

     

    void main(void)

    {

    Int b;//

    char s[]=”abc”;//

    char *p2;//

    static int c=0;//全局(静态)初始化区,.data

    char *p3=”123456”;//123456在常量区,p3在栈上。

    char *p=”wangling”;//这里是定义一个字符串常量,字符串常量不可改变。

     

    p1=(char*)malloc(10);//分配得来的1020个字节的区域就在堆区

    p2=(char*)malloc(20);

    strcpy(p1,”123456”);//123456在常量区,编译器可能会将它与p3所指向的”123456”优化成一个地方

    }

     

     

    getchar();putchar(); 输入输出单个字符函数括号中能填写变量名、转义字符、16进制数、8进制数、10进制数。

    需要注意的是:你的字符或者转义字符,必须是单个,必须用单引号括起来,你的数字(不管是什么进制的数,都不要加单引号)

    具体代码截图如下:

     

     gets();puts(); 输入输出字符串的函数;

     scanf(" %d ",&n); printf(",,,,,,"); 最常用的输入输出函数

    字符串输入输出:

     

     

     

    练习:

     

    1.输入一个大写字母,转换为小写字母输出

    方法一:

    方法二:

     

     

     

     

     

    2.输出姓名,年龄,工资,性别

    方法一:

    方法二:

    结果如下:

    If else语句

    执行结果:

    执行结果:

     

    &&

    执行结果:

    ||

    执行结果:

    switch语句

    执行结果:

    字符作为常量表达式

    易错点:case后面要空一格;常量后有:冒号;defalut在最后结束;跳出循环用break

    配置vimrc

    输入三个整数,输出最大值和最小值

    易错点:先从键盘输入a,b,c,然后再把a赋值给max,min,然后进行比较;可以直接使用if

    执行结果:

    输入三个实数,按从大到小的顺序输出

             }

    易错点:赋值的顺序;先把值赋给空值;比较的顺序也不能乱

    执行结果:

     

     

     

     

    1——100的和:(用循环语句for

              }

    执行结果:

    计算1——100的和(while语句)

     

    If else

    If   else if   else

    Switch

    For

    While

     

    For(表达式1;表达式2;表达式3)

    {

    循环体4

    }

    1--2--4--3--2--4--

    For(;;)//表示死循环

    只要表达式成立,就继续循环

     

    While1//表示死循环

    While(表达式)

    {

     

    }

     

    Do

    {

    }while(表达式);

     

     

     

     

     

     

     

     

     

     

    易错点:(ch=getchar())!=‘ ’

    练习1:循环输入n个数,n的值通过终端输入,求出输入的n个数中大于0的数值的和。

     

    易错点:给sum赋初值;先scanf输入才能判断大小;scanf中数值要加&

    练习2:假设公鸡5元钱一只,母鸡3元钱一只,小鸡1元钱3只,给你100元钱,请买100只鸡,设计算法

     

    易错点:给z赋值:z=100-5*x-3*y;x+y+3*y要加括号!

     

     

     

     

     

    1.static     静态

    2.特点:

    1.static定义的全局变量----它的主要作用是,限定该变量只能被本文件中的行数使用,不能被其他文件中的函数调用。就是限定作用域在本文件中。

    2.static定义的局部变量----只被初始化一次,当函数结束时,保留函数结束时的值。当函数再次被调用的时候,a就不会再次被初始化为0

    3.

    void swap()

    {

    static  int  a=0

    a++

    printf(“%d ”,a);

    }

    int main()

    {

    swap();//调用一个函数

    swap();//调用一个函数

    printf();

    }

  • 相关阅读:
    基于Metaweblog API 接口一键发布到国内外主流博客平台
    uva144 Student Grants
    Uva 10452
    Uva 439 Knight Moves
    Uva 352 The Seasonal War
    switch语句
    java——基础知识
    我的lua学习2
    codeforces 431 D. Random Task 组合数学
    codeforces 285 D. Permutation Sum 状压 dfs打表
  • 原文地址:https://www.cnblogs.com/changru/p/5972472.html
Copyright © 2011-2022 走看看