初探c

发布于 2022-09-13  282 次阅读


碎碎念

正好在我重感冒的时候来台风

还是精准打击,摆明了不想让我好呗

怎么军训的时候你不来啊喂!

一些新学的东西

此处只讲这些关键字在c中的特性,不涉及c++

static

静态局部变量

#include<bits/stdc++.h>
using namespace std;
int main()
{
	for(int i=1;i<=5;i++)
	{
		static int n;
		n++;
		cout<<n<<endl;
	}
	return 0;
}

在这份代码中,局部变量n在第一次定义时自动初始化为0

往后每次定义时直接使用上一次的地址,具体表现在输出结果中

1
2
3
4
5

静态全局变量/函数

此处的概念是在一个项目下才有的

该变量/函数只在该文件下存在

其他文件无法访问,extern(后文会提到)也不行

extern

用来声明一个变量或函数,使其在当前程序段中可用

这个变量或函数可以在该段程序外部,也可以在别的文件内

但是无法声明用static声明的变量或函数

strtok

#include<bits/stdc++.h>
int main()
{
    char buf[]="hello@boy#this@is#heima";
    char *temp = strtok(buf,"@#");
    while(temp)
    {
        printf("%s ",temp);
        temp = strtok(NULL,"@#");
    }
    return 0;
}

该函数的作用是分解字符串

第一个参数是需要分解的字符串s,第二个参数是分隔符字符串delim

首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL

输出结果为

hello boy this is heima

sizeof

sizeof(数组名)表示整个数组占用内存的大小

sizeof(*数组名)表示数组第一个元素占用内存的大小

所以 sizeof(数组名)/sizeof(*数组名) = 数组第一维的大小