C语言常见关键字有哪些及指针怎么使用

今天小编给大家分享一下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(自动)
#include <stdio.h>
int main()
{
  int a = 10;//局部变量都是自动变量 - 前面都省略一个auto --> auto int a = 10
  return 0;
}

局部变量和全局变量:

定义在代码块({})内部的变量叫局部变量,定义在代码块({})外部的变量叫全局变量

代码块用{}表示,局部变量和全局变量的名字建议不要相同,容易产生bug,当名字相同时局部变量优先

#include <stdio.h>


  int num2 = 20;//全局变量
int main()
  int num1 = 10;//局部变量
  return 0;
}
register(寄存器关键字)&unsigned(无符号型)

C语言常见关键字有哪些及指针怎么使用  c语言 第1张

速度:寄存器>高速缓存>内存>硬盘

大小:硬盘>内存>高速缓存>寄存器

计算机存储数据原理:硬盘数据-->内存-->高速缓存-->寄存器-->cpu

#include <stdio.h>
int main()
{
  //register int a = 10;//建议把a定义成寄存器变量,计算机会优先储存这个数据
  int a = 10;
  a = -2;
  //int 定义的变量是有符号的
  //signed int == int
  unsigned int num = 0;//unsigned无符号型
  return 0;
}
typeof - 类型定义  - 类型重定义
```c++
#include <stdio.h>
int main()
{
  //typedef - 类型重定义
  typedef unsigned int u_int;//重新定一个unsigned int型变量
  unsigned int num = 20;
  u_int num = 20;
  return 0;
}
static -- 用于修饰变量

static修饰就不变量,局部变量生命周期变长(出了作用域不会被销毁)

#include <stdio.h>
void test()
{
  //int a = 1;//创建一个局部变量
  static int a = 1;//a是一个静态的局部变量
  a++;
  //printf("a = %d\n",a);//2 2 2 2 2
  printf("a = %d\n",a);//2 3 4 5 6
}
int main()
{
  int i = 0;
  while (i<5)
  {
    test();
    i++;
  }
  return 0;
}

static修饰全局变量,改变了变量的作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了源文件便无法使用

创建一个源文件,创建一个全局变量

//这是一个test1.c的源文件
static int g_val = 2022;//全局变量

回到源文件中编代码

#include <stdio.h>
int main()
{
  //extern - 声明外部符号的关键字
  extern int g_val;//报错,一个无法解析的外部命令
  printf("g_val = %d\n",g_val);
  return 0;
}

如果将test1.c中的static去掉则会输出2022

static 修饰函数改变了函数的连接属性 正常的一个函数是具有外部链接属性,被static修饰时就变成内部连接属性了

static int Add(int x , int y) (定义一个函数)

{

int z = x+y;

return z;

}

#include <stdio.h>
//声明外部函数
extern int Add(int , int);
int main()
{
  int a = 10;
  int b = 20;
  int sum = Add(a,b);
  printf("sum = %d\n",sum);//报错
  return 0;
}
#define(默认)

1.定义标识符常量

2.定义宏

#include <stdio,h>

//#define 定义标识符常量
//#define MAX 100;

//#define 可以定义宏 - 带参数
//函数的实现
int Max(int x , int y)
{
  if(x > y)
    return x;
  else  
    return y;
}
//宏的定义方式
#define MAX(X,Y) (X>Y ?X:Y)
int main()
{
  //int a = MAX;

  int a = 10;
  int b = 20;
  //函数
  int max = Max(a,b);
  printf("max  = %d\n",max);
  //宏的方式
   max = MAX(a,b);
  //max =(a>b?a:b)
  printf("max = %d\n",max);
  return 0;
}
struck - 结构体操作符
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)//跳过这个报错
//创建一个结构体类型
struct Book
{
  char name[20];//C语言程序设计
  short price;//50
};

int main()
{
  //利用结构体类型创建一个该类型的结构体变量
  struct Book b1 = {"c语言程序设计",50};
  struct Book* pb = &b1;
  //利用(指针变量)pb打印书名和价格

  // .  结构体变量.成员
  // -> 结构体指针->成员
  //printf("%s\n", pb->name);
  //printf("%d\n", pb->price);
  /*printf("%s\n", (*pb).name);
  printf("%d\n", (*pb).price);*/


  //printf("书名:%s\n", b1.name);
  //printf("价格:%d\n", b1.price);
  //b1.price = 15;

  //修改name值(因为是数组类型不能直接进行修改)
  strcpy(b1.name, "C++");//strcpy - string copy - 字符串拷贝-库函数-需要引用string.h头文件
  printf("%s\n", b1.name);
  //printf("修改后的价格:%d\n", b1.price);*/
  return 0;
}
指针

指针的大小在32位的平台上是4个字节,在64位的平台上是8个字节

#include <stdio.h>
int main()
{
  int a = 10;
  //& - 取地址操作符 在之前的“字符串+转义字符+注释”那一节有说到
  int* p = &a;//取出a的地址(放在p中)  创建一个指针变量p(int* )
  printf("%p\n",p);
  *p = 20;//* - 解引用操作符  *p指a的地址
  printf("a = %p\n",a);//20
  //有一种变量是用来存放地址的 - 指针变量
  //printf("%p\n", &a);//打印a的地址(16进制)
  return 0;
}

C语言常见关键字有哪些及指针怎么使用  c语言 第2张

#include <stdio.h>
int main()
{
  char ch = 'w';//定义一个ch变量
  char* pc = &ch;//取出ch的地址放在pc中
  printf("%d\n",sizeof (pc));//打印pc所占空间大小(指针变量的大小)
  *pc = 'a';//利用pc访问ch的地址更改ch的内容
  printf("%c\n",ch);//a
  return 0;
}

C语言是什么

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器。

以上就是“C语言常见关键字有哪些及指针怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注蜗牛博客行业资讯频道。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram