C_Cpp-C语言回顾

一.数据类型及长度

1.java(虚拟机平台,数据长度固定) 
    byte short int long float double char boolean
     1    2     4    8    4      8     2  不确定(4或1) 

2.C语言(不同平台数据长度不同)
    char short int long float double
      1   可用sizeof获取数据长度
    signed(默认) unsigned

    枚举
    enum WeekDay{
        Monday=1,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
    };
    enum WeekDay wd = Sunday;
    printf("%d\n",wd);

    联合体
    union mix{ 
        double d; int i; char c; 
    };
    在Union中,所有成员不能同时存在,总长度等于最长成员的长度

    结构体
    struct date { 
        double year;int month;char day; 
    };      
    在struct中,各成员同时存在,总长度等于所有成员之和    

二.输入输出

#include <stdio.h> // 输入输出库
#include <stdlib.h>
system("java hello");// 调用系统命令,执行java代码
system("pause");// 调用系统命令,让控制台暂停

1.输出
    %hd short half d 
    %d  int
    %ld long int
    %f  float
    %lf double  long float 
    %u  无符号数
    %x  十六进制
    %o  八进制
    %c  char
    %s  字符串
    int i=3;
    printf("int =%d\n",i);

2.输入
    int i;
    char c[3];
    scanf("%d",&i);
    scanf("%s",c);

三.指针

1.指针代表内存地址  
指针变量 存放内存地址的变量  
*含义 
    1.乘法   
    2.指针变量类型 int* p;
    3.指针变量取值 *p = 2;

2.指针常见错误 
    1不给指针变量赋值,直接用,野指针 int* p; *p =2;
    2指针类型和赋值类型不匹配 float f; int* i=&f;

3.指针和数组
    数组元素在一块连续内存中 
    数组变量对应数组首元素地址 int a[3]; a=&a[0];
    char* c="HelloWorld" 表示字符串char c[]="HelloWorld";

4.多级指针
    int i=3;
    int* p1=&i;
    int** p2=&p1;
    int*** p3=&p2;  

5.函数指针
    int add(int x,int y){    
        return x+y;
    }
    int (*f)(int x,int y);
    f=add;
    f(3,5); 

四.内存分配

data区 常量池  
code区 存放代码 main()等等
栈区 静态自动分配和释放 连续分配
堆区 动态手动分配和释放 不连续分配(链表)
    malloc() 手动分配内存 memorry alloc
    free() 手动释放内存

int* p=(int*)malloc(sizeof(int)); //手动分配内存
*p=3;
free(p);  //手动释放内存

简书: http://www.jianshu.com/p/b35971db05df
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/72455747
GitHub博客:http://lioil.win/2017/05/17/C_review.html
Coding博客:http://c.lioil.win/2017/05/17/C_review.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值