由于最近专业课及各种事情的耽搁更新晚了抱歉,但是今天它来了。这里是初识C板块的最后一节,之后的更新将会具体化,更加的详细😋
目录
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板块到这就结束😃,有问题的地方欢迎各位指正!