初识C语言(3)②

常见关键字

关键字意义
auto局部变量(自动储存)
break无条件退出程序最内层循环
case switch语句中选择项
char单字节整型数据
const定义不可更改的常量值
continue中断本次循环,并转向下一次循环
default switch语句中的默认选择项
do用于构成do…while循环语句
double定义双精度浮点型数据
else构成if…else选择程序结构
enum枚举
extern在其它程序模块中说明了全局变量
float定义单精度浮点型数据
for构成for循环语句
goto构成goto转移结构
if构成if…else选择结构
int基本整型数据
long长整型数据
registerCPU内部寄存的变量
return用于返回函数的返回值
short短整型数据
signed有符号数
sizoef计算表达式或数据类型的占用字节数
static定义静态变量(延长变量生命周期)
struct定义结构类型数据
switch构成switch选择结构
typedef重新定义数据类型
union联合类型数据
unsigned定义无符号数据(是正的)
void定义无类型数据(无返回值)
volatile该变量在程序中执行中可被隐含地改变
while用于构成do…while或while循环结构

typedef 重新定义数据类型

typedf unsigned int uint//意为给unsigned int 这个数据类型重新起名为uint
//unsigned int a = 10;
uint a  = 10;

static 延长变量生命周期

3种用法:

1.修饰局部变量 但作用域还是局部的

2.修饰全局变量

3.修饰函数

void test()
{
     static int b = 1//加上static,表示b出了作用域仍不会被销毁,直到程序结束
     //第二次调用会跳过这行
     //int b = 1;//没有static,b出了作用域会被销毁
     b++;//b=b+1c
     printf("%d",b);
}
int main()
{
    int a = 1;
    while (a < 3)
    {
          test ();
          a++;//a=a+1
     }
     return 0;
      
}

在这里插入图片描述
static修饰函数也一样

#define定义常量和宏

#define MAX = 100;//定义常量
//定义宏
#define ADD(X,Y) ((X)+(Y))//ADD是宏
//宏是替换式的工作,不是调用
int main()
{
    int a = 10;
    int b = 20;
    int sum = ADD(a,b);
    //int sum = ((a)+(b));//替换后
    printf("%d",sum);
    return 0;
}

指针

1.每个内存单元的大小为1个字节,为了能够有效的访问到内存的每个单元,
就给内存单元进行了编号,这些编号被称为该 内存单元的 地址 请添加图片描述
%s - 打印字符串
%c - 打印字符
%d - 打印有符号的整数
%f - 打印单精度浮点数
%lf - 打印双精度浮点数
%p - 打印地址(地址是16进制的)

在这里插入图片描述
地址有指向性也可以成为指针

int main()
{
	int a = 10;
	&a//是一个数值
	int* pa = &a;//int*代表的是int型的指针
	//pa叫做指针变量,pa的内容就是a的地址
	*pa = 20;
	//*pa等价于a,这行代码表示a被赋值了
	printf("%d",a);//打印出来a是20
	//*是解引用操作符
}

int * 中的 * 表示pa为指针变量

int * 中的 int表示pa指向的对象a的数据类型为int

指针变量大小

指针(地址)大小是根据多少位操作系统决定的

32位环境下,指针大小是4个字节(32bit就是4个字节)

64位环境下,指针大小是8个字节(64bit就是8个字节)

指针变量是用来存放地址的,所以指针变量大小为4个字节

int main()
{
   char ch = 'w';
   char* pc = &ch;
   printf("%d",sizeof(pc));//打印出来为4
    return 0;
}
#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char *));
    printf("%d\n", sizeof(short *));
    printf("%d\n", sizeof(int *));
    printf("%d\n", sizeof(double *));//打印出来后都为4
    return 0; }

在这里插入图片描述

结构体(关键字struct)

复杂对象,不能用简单的类型直接描述需要用到结构体

结构体是组合类型,是自己创造的自定义类型、

//书 书名-价格-编号
struct BOOK
{
	char name[20];//[]内不能为空
	float price;
	char id[20];//创建结构体
};//别忘记 ;
int main()
{
	struct BOOK b = { "语文",30.0f,"D567876" };//float类型数字后要加f,double不用
	//b是结构体变量
	printf("书名:%s\n", b.name);//结构体变量.成员名
	printf("价格:%f\n", b.price);
	printf("编号:%s\n", b.id);
	return 0;
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值