初识C语言——C语言基础知识(3)

   大家好,我是Brant_zero

   接下来为大家带来剩下4部分的C语言基础认识,这剩下的4个部分难度比较大了,大家做个基本了解。

目录

一.常见关键字

1.关键字typedef

2.关键字static

1.修饰局部变量

2.修饰全局变量

二.define定义变量和宏  

定义宏

定义函数宏(宏函数)

三.指针

四.结构体


一.常见关键字

   关键字有很多,这里就不一一介绍了,主要给大家介绍以下两种关键字,typedef和static关键字,还有许多关键字会在以后碰到给大家介绍。
以下就是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

1.关键字typedef

   typedef 顾名思义就是类型定义,这里应该理解类型重定义

比如

定义unsigned int (无符号整形)重命名为 u_n,则u_n就也代表无符号整形的意思了

typedef unsigned int u_n;

int main ()
{
  unsigned int num1=0;
  u_n num=0;
  return 0;
}

   即上面的num1和num1是等价的,所以typedef类似于起别名起外号的感觉,减少赘余。

2.关键字static

在C语言中:

staic可以用来修饰变量

1.修饰局部变量-称为静态局部变量

2.修饰全局变量-称为静态全局变量

1.修饰局部变量

这里我引用一个例子,我们可以理解为static修饰的局部变量只有第一次定义时的赋值,而下一次被调用的时候这个变量不会被重新定义,会延续上次的值,这就是static的一部分作用

#include <stdio.h>
void test()
{
	static int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}

如果不加static:

除了以上可见的作用,可以体现static的另一部分隐含的作用是延长声明周期,使static修饰局部变量i改变了变量的生命周期让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。

2.修饰全局变量

全局变量被statci修饰,会使得这个全局变量只能在本源文件中使用,不能在其他的源文件内使用

源文件一:
#include <stdio.h>
extern int c;
int main()
{
	printf("%d ", c);
	return 0;
}
源文件二:
static int c = 20;

static修饰全局变量时,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使
用。如果不加这个static,源文件一中的打印就会正常执行。

二.define定义变量和宏  

关于define定义变量在初始C语言(2)中有讲解了,这里介绍以下define定义宏:

定义宏

宏定义可以:提高效率、可读性、易改型、核心是可替换

定义方式:

#define 标识符 字符串

标识符:宏定义的名字

字符串:常数、表达式、格式串等

定义函数宏(宏函数)

通常使用函数宏来进行定义,使用do{……}while(0)构造后的宏定义不会受到大括号、分号的影响,总会是按你期望的方式调行运行。

举个栗子:

#define  ADD do{  (x, y) ((x)+(y))  }   while(0);(记得这个分号)

#define ADD do{ 
               (x, y) ((x)+(y))  
              }while(0);

#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;
}

三.指针

指针就是内存,指针是C语言的灵魂,不掌握指针的相当于没掌握C语言,但是指针的难度相当于其他内容也是更加的复杂,需要对内存以及数据的存储方式有一定的了解,是一个十分巨有难度的知识点

这里不做太多的讲解

在后期,会有大量大量非常大量的讲解(不是因为懒)

四.结构体

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型的能力;

比如描述学生的名字+年龄+性别+学号

如果有很多学生,一个一个创建变量就会显得太多赘余

所以,这里只能使用结构体来描述了

例如:

struct stu

{

char nane【20】;

int age;

char sex[5]

char id [5];

};(注意这里有一个分号!!!!)

结构体的初始化:

为结构体赋值:

定义一个结构体s:struct stu s={"Brant",20,"男“,“20180101”};

这里介绍一个结构体的操作符:点操作符(.);

用点操作符来访问结构体成员

printf ("name =%s age =%d sex =%s id =%s\n",s.name,s.age,s.sex,s.id);

(这样就可以打印各结构体成员了)

   再介绍一个操作符:(->)操作符

这个操作符是给指针使用的,使用方法如下:

struct Stu *ps =&s;(先使指针ps指向结构体s,然后再配合(->)就可以访问结构体成员了)

printf ("name =%s age=%d sex =%s id = %s \n",ps->name,ps->age,ps->sex,ps->id);

   就可以了打印出结构体s 的成员了。

   结构体总的来说初步认识还是比较简单的,就是格式掌握就算基础了解他的功能了。当然结构体还有许多作用,我会在以后娓娓道来。

   关于C语言的内容还有很多,这只是大致的框架让大家有所认识,更加具体的知识我会在后面的学习中带给大家。

   介绍到这里,初始C语言的内容也就介绍完了,后续会对这些介绍的内容进行更具体的讲解,希望大家可以留下关注,大家一起学习C语言,一起进步;

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 在 C++ 中使用宏定义定义无符号整形可以使用以下方法: ``` #define UNSIGNED_INT unsigned int ``` 然后在代码中就可以使用 `UNSIGNED_INT` 来代替 `unsigned int` 了。 但是,通常不推荐使用宏定义,因为它有一些限制和缺点,例如不支持类型检查和不能被调试器正确识别。因此,通常更倾向于使用 `typedef` 来定义类型别名: ``` typedef unsigned int UNSIGNED_INT; ``` ### 回答2: 在C++中,我们可以使用宏定义来定义无符号整型。无符号整型是一种只包含非负整数的数据类型。 要在C++中使用宏定义无符号整型,我们可以使用以下的语法: ``` #define MY_UINT unsigned int ``` 在上述代码中,我们使用宏定义`#define`来定义一个新的标识符`MY_UINT`代表无符号整型。这个无符号整型是通过别名`unsigned int`来表示。 接下来,我们可以使用`MY_UINT`代替`unsigned int`来声明变量: ``` MY_UINT myVariable; ``` 在上述代码中,我们使用`MY_UINT`来声明一个无符号整型变量`myVariable`。 通过宏定义无符号整型,我们可以使代码更加清晰和易读。宏定义可以在多个变量中使用,而不必每次都写`unsigned int`,进而提高代码的可维护性。 需要注意的是,宏定义是在预处理阶段进行替换的,所以在编译器将代码编译成机器码之前,所有的宏定义都会被替换为相应的代码,因此在使用宏定义时要保证正确性和一致性。 总之,在C++中使用宏定义可以方便地定义无符号整型,提高代码的可读性和可维护性。注意在使用宏定义时需要谨慎,确保代码正确性和一致性。 ### 回答3: 在C++中,可以使用宏定义来创建无符号整型。宏定义是C++的一个预处理指令,可以用来定义常量和简单的函数替代。 要定义一个无符号整型的宏,在编写代码的任何地方,可以使用`#define`指令来创建宏,并给它一个恰当的名称。例如,下面的代码将创建一个名为`UINT_TYPE`的宏,用来代表无符号整型: ```cpp #define UINT_TYPE unsigned int ``` 这样,我们可以在代码的其他地方使用`UINT_TYPE`作为无符号整型的类型进行声明。例如,下面的代码使用`UINT_TYPE`来声明一个变量`num`: ```cpp UINT_TYPE num; ``` 在上面的代码中,`num`将被声明为无符号整型的变量。 通过使用宏定义,我们可以在整个代码中轻松地更改无符号整型的类型。如果我们决定将无符号整型更改为无符号长整型,只需修改一行代码即可,如下所示: ```cpp #define UINT_TYPE unsigned long ``` 然后,整个代码中的所有使用`UINT_TYPE`的地方都将变为无符号长整型。 需要注意的是,使用宏定义时需要谨慎,因为它实际上只是进行了简单的文本替换。在使用宏定义时,要确保在每个地方都正确地替换了宏。另外,它也没有类型检查,因此要确保所替代的类型适用于相关的操作。 总结而言,在C++中使用宏定义可以方便地创建无符号整型,并能够灵活地更改其类型,但需要注意合理使用它并确保正确替换和类型适用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brant_zero2022

素材免费分享不求打赏,只求关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值