?由于最近专业课及各种事情的耽搁更新晚了抱歉,但是今天它来了。这里是初识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的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
printf("%p\n", &num);//打印地址,%p是以地址的形式打印
return 0;
}
地址的储存,需要定义指针变量
int num = 10;
int* p; //p为一个整形指针变量
p = #
?使用如下:
#include <stdio.h>
int main()
{
int num = 10;
int *p = #
*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板块到这就结束😃,有问题的地方欢迎各位指正!
|