初识C语言3

本文介绍了C语言的基础知识,包括常见关键词如typedef和static的用法,define定义常量和宏,以及如何使用指针。还详细讲解了结构体的概念,如何声明和使用结构体变量。通过对这些基础知识的掌握,读者可以更好地理解C语言程序设计。
摘要由CSDN通过智能技术生成

 由于最近专业课及各种事情的耽搁更新晚了抱歉,但是今天它来了。这里是初识C板块的最后一节,之后的更新将会具体化,更加的详细😋 

目录

1.常见关键词

2.define 定义常量和宏

3.指针 

4.结构体


1.常见关键词

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

 这里先列举 typedef static

 typedef:关键词 typedef 类型重定义(改名卡)_i跑跑的博客-CSDN博客

static:关键词static的用法_i跑跑的博客-CSDN博客

2.define 定义常量和宏

#define定义的标识符常量

#include <stdio.h>
#define MAX 100
#define ST  "haha"
int main()
{
	printf("%d\n", MAX);
	printf("%s\n", ST);
	return 0;
}

 

 #define定义宏   跟函数相似

函数的方式

#include <stdio.h>
int MAX(int x, int y)
{
	if (x > y)
		return x;
	else
		return y;
}

int main()
{

	int a = 10;
	int b = 20;
	int max = MAX(a, b);
	printf("max=%d\n",max);
	return 0;
}


宏的方式

#include <stdio.h>
#define MAX(x,y) (x>y?x:y)      //宏的定义
int main()
{
	int a = 10;
	int b = 20;
	int max = MAX(a,b);
	printf("max=%d\n",max);
	return 0;
}

3.指针 

内存:内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。 

取出变量地址:

#include <stdio.h>
int main()
{
	int num = 10;
	&num;//取出num的地址
	                       //这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
	printf("%p\n", &num);//打印地址,%p是以地址的形式打印
	return 0;
}

地址的储存,需要定义指针变量

int num = 10;
int* p;   //p为一个整形指针变量
p = &num;

 使用如下:

#include <stdio.h>
int main()
{
 int num = 10;
 int *p = &num;
 *p = 20;
    return 0;
}

p为指针变量,用来存放地址。int *说明了q是一个指针变量(相当于定义的类型),*为解引操作符,在*p中表示通过存放地址的p找到num,相当于*p=num。*p=20则是修改num的值。

扩展:其他类型

#include <stdio.h>
int main()
{
 char ch = 'w';
 char* pc = &ch;
 *pc = 'q';
 printf("%c\n", ch);
    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 *));
    return 0;
}

 如果平台为32位:

 如果平台为64位:

 结论:指针大小在32位平台是4个字节,64位平台是8个字节。

4.结构体

结构体为复杂类型:允许把不同数据类型的数据成员组合在一起

#include <stdio.h>
#include <string.h>
struct Book                           //创建结构体变量
{
	char name[20];//C语言程序设计
	short price;//55
};

int main()
{
	struct Book b1 = {"C语言程序设计",55};    //初始化
	 printf("%s\n",b1.name);
	 printf("%d\n",b1.price);
	return 0;
}

如果取地址:

	struct Book b1 = { "C语言程序设计", 55 };
	struct Book* pb = &b1;

则打印时还可以这样来表示:

	printf("%s\n",(*pb).name);
	printf("%d\n",(*pb).price);

. 为结构体成员访问的操作符 

结构体变量.结构体成员

这里还有->操作符:   结构体指针->成员

	printf("%s\n",pb->name);
	printf("%d\n",pb->price);


初识C板块到这就结束😃,有问题的地方欢迎各位指正!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今年依旧去年春

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值