C语言总结

1.C语言中的控制流程:

     顺序:

      循环:for  ;while;;do.....whie ;前两者可转换;

      选择:if else; switch 

                                   case 1:    break;   case 2    break;

2. break语句通常用于跳出switch、do-while、for、while等循环语句,不能用于跳出if语句。

continue:跳出此次循环,继续执行下一次循环

return 终止函数或者终止函数向主调函数返回一个值;

3. 数组 a[5] = {1,2,3,4,5};

4.c语言的基本单位是函数,模块化;c++的基本单位是类;

5.注意局部变量会屏蔽全局变量;

6.内存:一个字节=8个位(8个01);        

7. int* p;  变量名p,里边存放的是地址编号;int* 是数据类型,表示变量P是存放int类型变量的地址的一个指针变量;

*p指以p内容为地址的变量。

    指针就是地址,地址就是指针,地址是内存单元的编号,是从0开始的整数,范围0~4G。(地址总线32位,pow(2,32)=4G).

1k=1024b; 1M=1024b;  1G=1024M;

8.&取地址符,一般int i;  则 p =&i; p表示一个存放地址的变量,i是一个int变量;

9.*p =i是对的----*p是以p内容为地址的那个变量,就是i;

10.野指针问题:指向了同一内存的不同指针,下图,只释放一次即可,如free(p); 重复释放就报错。

free后,申请内存的那个指针就会变成野指针(声明了,但是没有任何指向);在操作后:将指针置为NULL,p=NULL;

11.实参和形参是不同的变量。

通过被调函数来修正main()函数的值,被调函数使用形参使用*p。

12.指针与数组: *(p+i)= p[i]

sizeof(变量名)=变量字节数;p指向char类型变量(char类型变量占1个字节);q指向int类型变量(占4个字节);r指向double类型变量 (占8个字节)。

sizeof(数据类型)=数据类型字节数  ;

硬件内存里,地址要4个字节来存放(32位系统,64位是8个字节),sizeof(p)也就是4个字节。

13.动态内存分配---malloc();realloc()补充分配内存;

传统:a[5]---系统分配20个字节内存,函数运行结束自动释放;

14. int* p = (int*) malloc(4);p是地址占4个字节,p指向的变量分配4个字节,一共占了8个字节;

free(p)是释放了

15.函数的执行按照栈分配原理:

16.多级指针:

int* p =&i;  -> p的类型是int*(存放int类型变量的地址);

int**q =  &p; -> q的类型是int**(存放int*类型变量的地址);

p->age 等价于(*p).age;

发送指针的优点: 内容少,速度快!

17.枚举:一种数据类型,本质上将0~n数字i替换成了实际意义,代码更安全。

18.逻辑运算

&&逻辑与; ||逻辑或

&二进制位与; |二进制位或; ~按位取反;^按位异或

19. 结构体数组:定义

struct student{
    int xh;
    char *name;
    char *sex;
}stu[30];
定义了一个结构体数组stu,共有30个元素,stu[0]--stu[29];
每个stu[]元素都是struct student类型

点操作符引用:

struct student{
        int  xh;
        char name[];
    }stu[4];

    strcpy(stu[0].name,"Tom");
    stu[1].xh = 1;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ai智享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值