第三天:初识关键字、常量与宏、指针和结构体

  今天是重新学习C语言的第三天,我想着,博客不仅用来分享我每日的学习成果,每天关于我的规划和思考也可以写进来,第三天我把C语言的基础部分都过了一遍,也算是简单复习了下,接下来就要开始真正到点的学习了,目前的进度个人感觉还可以接受,争取在寒假结束前完成进阶。目前的状态是对我的未来挺迷茫的,但是对于近段时间的规划和方向是精确的,希望量变可以引起质变,加油!

关键字

关键字不能做变量

auto  break   case  char  const   continue  default  do   double else  enum   extern float  for   goto  if   int   long  register    return   short  signed sizeof   static struct  switch  typedef union  unsigned   void  volatile  while

auto 是自动的 - 每个局部变量都是auto修饰的,省略掉了

break 循环顺序跳出

const 修饰常变量

enum 枚举

extern 用来声明外部符号

register 寄存器关键字

signed 有符号的

sizeof 求大小

static 静态的(后学)

void 无,空

volatile 暂时不学(必学)

define/include 预处理指令,不是关键字

typedef 类型重定义

typedef unsigned int u_int;

int main()

{

unsigned int num = 100;

u_int num2 = 100;

return 0;

}

static - 静态的

1.修饰局部变量:本质上改变了变量的存储类型,所以改变了生命周期

void test()

{

static int a = 1; //出范围a不销毁

a++;

printf("%d", a);

}

int main()

{

int i = 0;

while (i < 10)

{

test();

i++;

}

return 0;

}

2.修饰全局变量

全局变量在整个工程中都可以使用,只需extern声明

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

全局变量在其它源文件可以使用,是因为有外部链接属性,但是被static修饰后,就变成了内部链接属性,其它源文件就链接不到了

3.修饰函数

同全局变量相似

常量与宏

define是一个预处理指令

//define定义标识符常量 #define MAX 1000

//define定义宏
#define ADD(x, y) ((x)+(y)) 
#include<stdio.h>

int main() 
{
    int sum = ADD(2, 3);
    printf("sum = %d\n", sum);
    sum = 10*ADD(2, 3);
    printf("sum = %d\n", sum);
    return 0; 
}

指针

32位 - 32根地址线 - 物理线 - 通电 - 1/0

一个内存单元是一个字节

取地址&a - 取到的是第一个字节的地址

printf("%p\n"&a);    %p专门用来打印地址

int * pa = &a;     // pa叫指针变量,专门用来存放地址

                          // * 说明pa是指针变量,int说明pa指向的对象是int类型

#include<stdio.h>

int main()

{

    int num = 10;

    int *p = &num 
    *p = 20; //*解引用操作 *pa就是通过pa里面的地址找到num    

    return 0;

}

#include //指针变量的大小取决于地址的大小

//32位平台下地址是32个bit位(即4个字节)

//64位平台下地址是64个bit位(即8个字节)

int main()

{

   printf("%d\n", sizeof(char *));

   printf("%d\n", sizeof(short *));

   printf("%d\n", sizeof(int *));

   printf("%d\n", sizeof(double *));

   return 0;

}

结构体

 struct Stu 
 {
    char name[20];//名字
    int age;      //年龄
    double score //成绩
 };
 //打印结构体信息
 struct Stu s = {"张三", 20, "85.5"};

 //为结构成员访问操作符
 printf("name = %s age = %d score = %lf\n", s.name, s.age, s.score);

 以下是给了指针的打印方法
 //->操作符
 struct Stu *ps = &s;
 printf("%s %d %lf\n",(*ps).name,(*ps).age,(*ps).score)
 printf(" %s %d %lf\n", ps->name, ps->age, ps->score);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值