嵌入式7-13c语言

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>


//typedef类型的重命名

//typedef unsigned int uint;//typedef 重新定义unsigned int 这整个为uint
是类型的重新命名
//int main()
//{
//    unsigned int num = 0;
//    uint num2 = 1;//和上面效果一样
//    return 0;
//}
//


//static
//1.修饰局部变量
//2.修饰全局变量
//3.修饰函数


//1.修饰局部变量


//void test()
//{
//    /*static*/ int a = 1; //加上了static修饰局部变量的时候,局部变量出了作用域也不会销毁,更换了内存存储位置,a经过一次循环后变2
//                         //static创建了一个静态存储区域,保留了上一个值
//               a++;
//               printf("%d ", a); /// 2 2 2 2 2 2 2 2 
//                         ///局部变量a的生命周期从创建它到出去 }(花括号为出去) 就销毁了
//}
//

//int main()
//{
//    int i = 0;
//    while (i < 10)
//    {
//        test();//先执行完这个在下面的i++
//        i++;
//    }
//
//    return 0;
//}

//void的意义


// 
//void tset()
//{
//    //执行任务
//    printf("hello world\n");
//    //不需要return 返回值就用void
//}
//
//
//int main()
//
//{
//    return 0;
//}


//全局变量 static修饰全局变量 全局变量具有外部链接属性

//extern int g_val;
//
//int main()
//{
//    printf("%d\n", g_val);
//    return 0;
//}

//static修饰函数 函数也具有外部链接属性


//extern int Add(int x, int y);
//
//int main()
//{
//    int a = 10;
//    int b = 20;
//    int z = Add(a, b);
//    printf("%d\n", z);
//    return 0;
//}


//define定义标识符常量

//#define NUM 100
//int main()
//{
//    printf("%d\n", NUM);
//    int n = NUM;
//    printf("%d\n", n);
//    int arr[NUM] = { 0 };
//
//    return 0;
//}


//define定义宏


//宏是有参数
//      宏名 (宏的参数) 宏体   
//#define ADD(x,y) ((x)+(y))
//
//int Add(int x, int y)
//{
//    return x + y;
//}
//
//int main()
//{
//    int a = 10;
//    int b = 20;
//    int c = ADD(a, b);   //相当于是 int c = ((a)+(b)) 宏是完成替换的
//    printf("%d\n", c);
//}

//指针变量初见

//int main()
//{
//
//    int a = 10;//向内存申请4个字节,存储10
//    /*&a;*///取地址操作符
//    printf("%p\n", &a);//  %p 打印地址 //00000029290FFCA4
//    int* p = &a;  //把a的地址存起来        int * 是类型  p是变量 不是*p int 说明p指向的对象(a)是int类型的
//    //             p是指针变量就是用来存地址的  存放地址的变量就是指针变量
//
//
//    //char ch = 'w'; //同理上面的
//    //char* pc = &ch;
//
//    *p = 20;            //解引用操作符,意思就是通过p中存放的地址,找到p所指向的对象,*p就是指向a的值
//    printf("%d\n", a);  ///a的值就变成了20
//    return 0;
//
//}
//
//


//指针变量的大小

//int main()
//{
//
//    //不管是上面类型的指针,都说在创建指针变量
//    //指针变量是用来存放地址的
//    //指针变量的大小取决于一个地址存放的时候需要多大的空间(和x64 和x32 机器有关)
//    //32位机器上的地址:32bi位 - 4byte,所以指针变量的大小是4个字节
//    //64位机器上的地址:64bi位 - 8byte,所以指针变量的大小是8个字节
//
//    //sizeof 打印最好用%zu来打印
//    printf("%zu\n", sizeof(char*)); //8字节
//    printf("%zu\n", sizeof(short*));//8
//    printf("%zu\n", sizeof(int*));  //8
//    printf("%zu\n", sizeof(float*));//8
//    printf("%zu\n", sizeof(double*));//8
//}

//结构体  初见


//学生
//struct Stu
//{
//    //成员
//    char name[20];
//    int age;
//    char sex[10];
//    char tele[11];
//};
//
//void print(struct Stu* ps) //ps指针变量存了s的地址  只需要打印不需要返回void
//{
//    printf("%s %d %s %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
//    printf("%s %d %s %s\n", ps->name,ps->age,ps->sex,ps->tele);  //   -> 指向对象的成员
//}
//
//int main()
//{
//
//    struct Stu s = { "zhangsan",20,"nan","1313131313" };
//    //结构体对象(s).成员名
//    //printf("%s %d %s %s\n", s.name, s.age, s.sex, s.tele);
//
//    print(&s); //取出地址 放到print函数 ,地址要放到指针里面 
//    return 0;
//}

//作业

// 
//1. 求商 求余 
//int main()
//{
//    int a = 0;
//    int b = 0;
//
//    //输入
//    scanf("%d %d", &a, &b);
//    //计算
//    int c = a / b;
//    int d = a % b;
//    
//    //输出打印
//    printf("%d %d", c, d); //printf("%d %d",a/b,a%b)  一样的结果写法更加简易
//    return 0;
//}
//


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值