C语言学习笔记20230316

操作符:

除法:/

int a = 9/2; //output:4
float a = 9/2;//output:4.0000
以上,因为9和2都是int,因此结果会强转成int
float a = 9.0/2;或者 float a = 9/2.0;
上述情况打印的是4.50

左移乘  右移除

数组长度计算

int main(){
    int arr[10] = {0};
    printf("长度是:%d \n" ,sizeof(arr)); //output: 40
    printf("长度是:%d \n" ,sizeof(arr[0]));//output: 4
    //计算数组元素个数
    int sz = sizeof(arr)/sizeof(arr[-0]);//output: 10
    printf("数组长度是 %d\n" ,sz);
}

整数在内存中存储的是补码

补码 = 反码 + 1;

示例代码如下:

int main(){
    int a = 0;
    printf("~ 的结果是 %d \n ",~a);//output:-1 反码+1 整数在内存中存储的一般是补码,正整数原码、反码、补码相同,负整数,原码与反码相反,补码= 反码+1
}

关键字:特点

        1.C语言提供的,不可以自己创建

        2.不能做变量名

特殊关键字

extern:用来声明外部变量的

register:寄存器关键字  一般频繁多次被使用的数据,可以存储在寄存器中,但不代表一定会被存储在寄存器中,最终由编译器决定

signed:有符号

unsigned:无符号

union:联合体

volatile:

typedef:别名

注意:define、include不是关键字,是预处理指令 

static

修饰局部变量,改变了存储位置,由栈区转移到静态区

修饰全局变量,被修饰的全局变量只能在自己所在的源文件内部(.c)使用

        全局变量被static修饰之后,就变成了内部链接属性,因此不能被其他源文件使用(必须具有外部链接属性才可被其他原文件使用)和java不同

修饰函数:作用类似于修饰全局变量


void test(){
    static int a = 1;
    a++;
    printf("a = %d ",a);//output:2-11
}

int main(){
    int i = 0;
    while (i<10) {
        test();
        i++;
    }
    return 0;
}

 内存存储表示图:

变量内存存储
区域名存储变量类型
局部变量、函数的参数
动态内存分配
静态全局变量、static修饰的静态变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值