C语言中static与sizeof查缺补漏篇
static关键字
在C语言中,static
是一个关键字,用于声明静态变量和静态函数。静态变量和静态函数具有以下特点:
- 静态变量:静态变量在程序的整个生命周期内都存在,不会因为函数的调用而被销毁。它们在内存中的位置固定,只会被初始化一次。静态变量默认情况下具有文件作用域,即只能在声明它的文件中访问。
示例1:静态变量的使用
#include <stdio.h>
void increment() {
static int count = 0; // 静态变量
count++;
printf(\"Count: %d\
\", count);
}
int main() {
increment(); // 输出:Count: 1
increment(); // 输出:Count: 2
increment(); // 输出:Count: 3
return 0;
}
在上面的示例中,count
是一个静态变量,它在increment
函数中被声明。每次调用increment
函数时,count
的值都会增加,并且在不同的函数调用之间保持不变。
- 静态函数:静态函数只能在声明它的文件中访问,不能被其他文件调用。静态函数的作用是限制函数的作用域,防止与其他文件中的同名函数发生冲突。
示例2:静态函数的使用
#include <stdio.h>
static void printMessage() {
printf(\"Hello, static function!\
\");
}
int main() {
printMessage(); // 输出:Hello, static function!
return 0;
}
在上面的示例中,printMessage
函数被声明为静态函数,因此只能在声明它的文件中调用。
sizeof运算符
sizeof
是C语言中的一个运算符,用于计算数据类型或变量在内存中所占的字节数。它的语法形式为sizeof(type)
或sizeof(expression)
,其中type
是数据类型,expression
是一个表达式。
示例3:使用sizeof计算数据类型的大小
#include <stdio.h>
int main() {
printf(\"Size of int: %zu bytes\
\", sizeof(int)); // 输出:Size of int: 4 bytes
printf(\"Size of float: %zu bytes\
\", sizeof(float)); // 输出:Size of float: 4 bytes
printf(\"Size of char: %zu bytes\
\", sizeof(char)); // 输出:Size of char: 1 byte
return 0;
}
在上面的示例中,sizeof
运算符被用于计算不同数据类型的大小,并通过printf
函数输出结果。
示例4:使用sizeof计算变量的大小
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printf(\"Size of arr: %zu bytes\
\", sizeof(arr)); // 输出:Size of arr: 20 bytes
printf(\"Number of elements in arr: %d\
\", size); // 输出:Number of elements in arr: 5
return 0;
}
在上面的示例中,sizeof
运算符被用于计算数组arr
的大小。通过将数组的总字节数除以单个元素的字节数,可以得到数组中元素的个数。
希望以上内容对你有所帮助!如有任何疑问,请随时提问。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中static与sizeof查缺补漏篇 - Python技术站