C C++学习提要

1. 模2 除2 ,10转2

.

2.数组初始化

 char[] str="abc";  # a b c /0 四个元素

 char[] str={"a","b","c"} 是3个元素

 

3.指针类型 

首先指针 如果是32位 编译机 ,那指针就是 32bit 4个字节,64位 就是8字节

指针为什么有类型:  在 *pointer 时,char* 类型是解1个字节  int*解四个字节

 

4.避免野指针

a.野指针 里是个随机变量,如果给野指针赋值,不知道 会改写那块地址的内容。 非常危险

b.指针越界也会存在野指针

c.指正地址被释放的也会是野指针

当test()返回地址给到*p的时候,  这中间很有可能操作系统在释放test()瞬间会把地址分配给其他变量,所以 *p之后就是野指针了

 

数组越界另外 

//*p = i;

//P++
和 *p++=i 是一个意思

5.arr 作为参数传时的含义与  arr[0]的区别

6.多级指针

7.typedef 给结构or变量 重新定义个名字,typedef 之后 可以直接用stu

8.整数在内存如何存

2进制数的补码,  反码 补码规则,正数一样 ,负数  除符号位取反  +1 (网上查)

 

补充个算法: 10进制转16  10进制转2进制  ,2进制转16

#余 模  余 模  想象下 10进制 分别打印每一位  %10 就最后一位 /10去掉最后一位

#转16

def fac(var):
    if (var<16):
        print var
    else:
        i=var%16
        fac(var/16)
        print i

#转2

def fac2(var):
    if (var<2):
        print var
    else:
        i=var%2
        fac2(var/2)
        print i

#2进制转16

每4个2进制  0~15  代表了一个16进制0~ F

大端小端存储模式 指的最小单元 是字节。 也就是 8bit 为最小单位,一个int是 4个字节

4.设计一个大小端程序判断

 

如下代码 (char*)&a 相当于取了 a 的4字节里的 第一个字节 ,判断是不是01 (小端倒存  第一个字节 就是01)

为什么换成char类型?  char类型 只访问 int 4个字节里的 第一个字节, 也就是44 (被换成00)


 

5.程序的输出 要查查 补码是怎么补的 ,整形提升的规则是什么

结果是-1 -1 255   (上面说错了 补码是+1 要查查)

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值