zoukankan      html  css  js  c++  java
  • apue 20130315

    程序:a.c   ->    abc文件(二进制)  ->     ./.abc时程  ps结果

    结果相同:可执行文件相同      gcc   -V(版本)

    直观:程序

    返回值  int main(int argc, char **argv)

             {

    Start  没有程序的入口

    数据区;

    算法;

    }

    Scanf("");没有用处.getchar  fget  fgets

    File *   查看文件  elf可执行文件

    Printf();声明    user/include/stdio

    --库内核使用的变量  va_start()函数

    Printf();函数变参

    库  libc  gcc a.c -o abc -lc 加载库一个默认的

    函数库gcc d.c -o abc fun.c

    很多.o   ->lic.so

    /lib/libc   路径  fileno

    如果想在开发板上看到结果()   启动机器  /lib/libc

      Abc + 库   任何程序  qt+qt

    可执行文件夹     pc库   开发板库

    Linux  lic.so  动态链接库    dll(windows)

    动态库  ->    静态库

    .so              .a

      函数的实现   glibc.2.5.tar.gz

      C代码所有函数库

       String/str*.c  ->指针   特别的好

    编程没有思路

    1.多说话

    2.看代码

    有项目,有人走

    为什么要使用变量

    变量:用来保存数据

    定义变量

    Char a;

    Int b;

    A='q';

    A=100;

    B=10;

    B='a';

    数据类型  变量名字

    空间大小

    Int b;

    B='a';

    Int =4;

    Short =2;

    Char =1;

    Long long =8;

    4字节对齐小字节对齐

    程序优化

    时间VS空间

    每个地址一个字节空间门牌号

    Auto  栈  

    Extern  声明(没有开辟空间)

    Extern int a;

    A=10;不对

    Static  bss(未初始化数据区初始化为0)

    Register没有地址  快反复被使用

    Register int a;

    A=10printf("%p\n",&a);

    不能取地址

    :函数开,函数结束  (特点会没的)

    Ulimit -a  查看限制

    堆:一直有free?

    Static  内外无关未初始化为0

    堆:思考

    Free到底做了什么?是清零么?

    C/c++高质量编程

    Const int a=10;常量在程序中a的值永远不会被修改?

    不对,寻址

    A=9;编译不通过

    Int *p=&a;

    *p=9;可以

    Volatile :防止优化易变

    Const  auto   signed   int  a;

    Volatile static  unsigned  char 

           Extern          short

           Register

    不变的/善变的  放那里    存数据大小   变量名

    Const  char *p;

    Char const  *p;

    Char *const p;

    Const char const  * const p;

    常量:9,‘a,"abcdefg",const int a;(寻址修改)数组名,函数名

    存:Char *p="abcdefg";

    *p=b;

    Segmentation  无效引用

    取:Char *ptr=NULL;受保护

    Printf("%c\n",*ptr);

    终止信号SIGSEGV

    除数为0  SIGFPE

    捕获除数为0信号

     

     

    常见的运算符

    +-*/%,> >=,< <= == != ,条件1&&条件2  ||  !, ++ -- whille(p[++i])  while(*p++)逗号  for  (表达式最后)  ?: 三目运算符   宏  带参数的宏

     

     

    面试题:1编写一个函数,将某个数的某一位置1或者置0

           2编写一个函数,取出某个数的某一位

    赋值

    Ch='\0'==ch=0  ch='0'   a=9  a=011  a=0x9   

    Ch='\0';ascii不是一样的

    Ch=10;1010

    Ch=012;

    Ch=0xa;

    Ch='\n';字符二进制

     

     

    Sizeof()字节数

    Sizeof(类型);

    Sizeof(数组);sizeof(成员)*成员个数  

    Sizeof(指针);4  32位机

    Sizeof(结构体);

    形参  4  指针

    Struct t{

    Char buf[10];  12

    Char *p[9];    36

    Short a[3];     8

    Char (*q)[7];   4

    Int a;          4

    Short c;        4

    Void (*p)[8] (void *); 32

    }

    *地址=                   

         = *地址              取

    &变量名字   地址[偏移量]   +-  

    Fseek

    Char *(地址+偏移量)

    Int buf[100];

    Buf[9]

    *(buf+9);

    .   ,->

    结构体变量.成员      

    结构体地址->成员

    地址();实参

    函数指针

     

    变量的初始化

    Int a=10;

    Int a;

    A=10;

    Char *p="abcd";

    Char *p;p++

    *p="abcd";不对

    P="abcd"

    {}变量的作用域花括号

    练习:1输入9个数,找出最大值!

          2输入一个时间,输出下一秒;

    输入:2000 1 31 23:59:59

    输出:

          3输入一个时间,输出是星期几

    提示1970 1 1 星期四data

     

     

  • 相关阅读:
    001_jdk配置
    mysql(5.7)安装教程
    mysql(5.6)安装教程
    外网发布
    蓝桥 历届试题 分考场
    蓝桥 历届试题 合根植物
    Codeforces Round #650 (Div. 3) D : Task On The Board
    HDU 3336 Count the string
    leetcode [238. 除自身以外数组的乘积]
    leetcode [837. 新21点]
  • 原文地址:https://www.cnblogs.com/wangjingyuwhy/p/2962259.html
Copyright © 2011-2022 走看看