【C语言入门学习】基本语法补充02

本文介绍了C语言的基础语法,包括static关键字对局部和全局变量的影响,extern的作用,宏的定义和使用,以及指针和结构体的基础概念。
摘要由CSDN通过智能技术生成

【C语言入门学习】基本语法补充02

2024.1.10更新

常见操作符 关键字(2)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

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

extern int g_val;//声明外部变量
//static int g_val = 100;  //static 修饰全局变量使得全局变量只能在自己所在的源文件内部使用
//extern int g_val;报错

//全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性
//但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了

//static int Add(int x, int y)
//{
//	return x + y;
//}
//static 修饰函数,使得函数只能在自己的源文件内部使用,不能在其他源文件内部使用,
//本质上:static是将函数的外部链接属性变成内部链接属性(与static修饰全局变量类似)

void test()
{
	//int a =1; 10个2
	static int a = 1; //2到11 , a 出函数体不会销毁,再次进入函数体保持上一次的值
	a++;
	printf("%d\n", a);
}

//声明函数
extern int Add(int, int);//定义在test01.c中

int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	printf("%d\n", g_val);
	int a = 10;
	int b = 20;
	int sum = Add(a, b);
	printf("sum = %d", sum);
	return 0;
}
//static修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型) 
define定义常量和宏

//define定义符号
#define MAX = 1000

//define定义宏
//#define ADD(X,Y) X+Y //printf结果为11
//#define ADD(X,Y) (X+Y)错误写法
#define ADD(X,Y) ((X)+(Y)) //模式替换
#include<stdio.h>

int main()
{
	printf("%d\n", 4 * ADD(2, 3));//4*2+3
	//宏是实现替换的
	return 0;
}
指针
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//一个内存单元是一个byte:字节 
//一个byte由8个bit构成,1个bit为一个地址,所以一共8个地址  

int main()
{
	int a = 100;
	printf("%p\n", &a);//%p用于打印地址;
	int *pa = &a;//pa是用来存放地址的,在c语言中pa叫指针变量
	//* 说明 pa是指针变量
	//int 说明pa执行对象是int类型的
	char ch = 'w';
	char* pc = &ch;
	
	*pa = 20;//*解引用操作,*pa就是通过pa里面的地址,找到a
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(long*));
	printf("%d\n", sizeof(long long*));
	printf("%d\n", sizeof(float*));
	printf("%d\n", sizeof(double*));
	//32位机器,4个字节
	//64位机器,8个字节
	return 0;
}
结构体
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//结构体可以让c语言创建出新的类型出来
//创建一个学生
struct Stu
{
	char name[20];//名字
	int age; //年龄
	char sex[5];//性别
	char id[15];//学号
};

int main()
{
	//结构体的初始化
	struct Stu s = { "张三",18,"男","20241574" };
	printf("名字:%s 年龄:%d 性别:%s 学号:%s\n", s.name, s.age, s.sex, s.id);

	//操作符:->
	struct Stu* ps = &s;
	printf("名字:%s 年龄:%d 性别:%s 学号:%s\n", ps->name, ps->age, ps->sex, ps->id);
	return 0;
  }

总结:

c语言的基本语法初步了解以及补充完成
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值