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();

    }

  • 相关阅读:
    如何面试测试工程师?
    自动登录VSS
    软件质量浅谈
    如何在工作中更好的学习
    用例设计工具PICT — 输入组合覆盖
    如何提高送测版本的质量?
    Findbugs介绍及使用方法
    省市区三级联动(附数据库和导入模板的做法)
    EF-联合查询-结果集-Group by-统计数目
    WCF-复合类型使用;传输图片
  • 原文地址:https://www.cnblogs.com/changru/p/5972472.html
Copyright © 2011-2022 走看看