龙空技术网

分析C语言中的保留字(2)

C语言初探者 421

前言:

目前朋友们对“c语言没有return语句的函数将返回什么”大体比较注意,小伙伴们都想要知道一些“c语言没有return语句的函数将返回什么”的相关文章。那么小编在网摘上收集了一些对于“c语言没有return语句的函数将返回什么””的相关内容,希望各位老铁们能喜欢,大家快快来学习一下吧!

return:函数返回语句

函数返回语句的"return"关键字用于从函数中返回结果。

short:短整型数据

#include <stdio.h>

int main() {

// 定义一个包含10个元素的short数组

short array[10];

// 为数组赋值

for(int i = 0; i < 10; i++) {

array[i] = i * 2;

}

// 打印数组的所有元素

for(int i = 0; i < 10; i++) {

printf("array[%d] = %d\n", i, array[i]);

}

// 对数组进行简单的操作并打印结果

for(int i = 0; i < 10; i++) {

array[i] = array[i] * 2;

printf("array[%d] *= 2 = %d\n", i, array[i]);

}

return 0;

}

这个程序首先创建了一个包含10个元素的short类型数组,并为每个元素赋值为其索引的两倍。然后,它打印出数组中的所有元素。

最后,它将每个元素的值乘以2,并再次打印出结果。你可以看到,尽管这是一个非常简单的程序,但它确实对short类型的数据进行了一些基本的操作。

signed:有符号类型数据

在C语言中,signed关键字用于声明有符号(signed)数据类型,包括整数和浮点数。有符号类型可以表示正数、负数和零。下面是一些使用signed关键字的示例:

整数类型:

这个示例中,我们声明了一个名为a的有符号整数变量,并将其初始化为-5。

2. 字符类型:

在这个示例中,我们声明了一个名为b的有符号字符变量,并将其初始化为大写字母'B'。

3. 浮点数类型:

这个示例中,我们声明了一个名为c的有符号双精度浮点数变量,并将其初始化为-3.14。

sizeof:计算数据类型所占字节数

%zu 是用来打印 size_t 类型的格式化输出占位符。

打印出数组 arr 的大小。

打印出结构 TestStruct 的大小。

static:静态变量声明

static在局部变量中

无static

有static

分析:

结果是五个2

因为每次调用test函数时,变量a 又定义成1了,加一之后还是2;简而言之,就是每次都会初始化a =1,所以每次加一之前都是一,1+1=2.

a为局部变量,不会影响其他局部,每次运行test函数都会在大括号内重新定义一个a。也就是循环一次就会重新初始化a。

局部变量是进入它的作用域创建。→创建之后变成a ++。→a变成2。→打印出2的结果。→执行完成调用函数,那么就要从这个函数出去,a就不在了。

因为a是局部变量→局部变量,进入它的范围,生命周期开始,创建了,出去这个函数返回的时候,这个局部变量生命周期到了,它销毁了,这个空间还给系统。

void函数大概可以理解为只执行代码而不返回值。void是无返回值。

这里的void test是下面的代码调用了test 里边的代码。

首先从下面这个函数开始判断,当i<5的时候,就要调用上面那个函数。

当i=0时候,a =2

当i=1时候,a又要重新创建,a=1,a ++,所以a=2

以此类推,所以a一直是2。

当加上static时,会发生什么变化呢?

此时的a,就是静态的局部变量。

分析:static可以让它保持变化后的值。静态变量是存在全局区的。静态跟全局变量一样,当某程序创建后,只会到这个程序完全退出才会销毁。

i是循环判断,a是循环体内部使用函数的局部变量,和循环的判断没关系。静态局部变量第一次被初始化,之后在函数调用时不再被初始化。

静态局部变量只初始化一次,生命周期是整个程序。这个stctic就是可以保留上一次a的值。

stctic的作用——修饰局部变量。——局部变量的生命周期变长。

在C语言中,静态变量是指在一个函数内定义,但不会在函数调用结束后被销毁的变量。这样的变量在程序的整个执行期间都存在,而不仅仅是在它被声明的函数内。

有两种方式可以在C语言中声明静态变量:

在函数内部直接声明:

void function()

{

static int x = 0; // 静态变量

// ...

}

在这个例子中,x是一个静态变量,这意味着即使在function函数调用结束后,x的值也会保留。在下一次函数调用开始时,它的值会保留,而不是被重置为默认值。

在函数外部声明并在函数内部定义:

int x; // 静态变量声明

void function() {

x = 0; // 定义和初始化静态变量

// ...

}

在这个例子中,x在函数外部被声明,然后在函数内部被定义和初始化。这也使得x成为一个静态变量,它的值在函数调用之间是持久的。

需要注意的是,静态变量的初始值是未定义的,因此在使用之前通常需要对其进行初始化。如果未在声明时对静态变量进行初始化,则其初始值不确定。

static在全局变量中

在C语言中,使用static关键字修饰全局变量可以将该全局变量的作用域限制在声明它的文件内,而不是在整个程序中。

当全局变量被声明为static时,它的存储位置通常是在数据段(data segment)而不是堆(heap)或栈(stack)上。这意味着该变量在程序的整个执行期间都存在,而不是仅在函数调用期间存在。

使用static关键字修饰全局变量还有另一个作用,它可以防止该变量被其他源文件中的代码访问。由于该变量只在该源文件内有效,因此其他源文件中的代码无法访问它。

例如,假设你有一个名为example.c的源文件,其中包含以下代码:

#include <stdio.h>

static int myGlobalVariable = 42; // 使用static关键字修饰全局变量

int main() {

printf("%d\n", myGlobalVariable); // 在函数内部访问全局变量

return 0;

}

由于myGlobalVariable被声明为static,因此它只在该源文件内有效。如果其他源文件试图访问该变量,编译器将报错。

static 修饰函数

static 修饰函数的作用是将函数的作用范围限制在声明它的文件内,而不是在整个程序中。被声明为 static 的函数只在该源文件内部可见,而不能被其他源文件中的代码访问。

例子:

#include <stdio.h>

// 声明一个静态函数

static void myStaticFunction() {

printf("这是一个静态函数\n");

}

int main() {

// 调用静态函数

myStaticFunction();

return 0;

}

在上面的示例中,myStaticFunction() 被声明为 static,这意味着它只能在该源文件内被访问。如果尝试在其他源文件中调用该函数,编译器会报错。

struct:结构体类型声明

name和age

switch:开关语句

typedef:定义类型别名

typedef:类型定义——类型重定义

例如,C语言中的struct可以用来创建复杂的数据类型。但是每次提到这个struct的时候,都需要使用其完整的名称。使用typedef可以为这个struct类型定义一个简短的别名,使你在代码中可以更方便地使用它。

例子:

typedef struct {

char name[50];

int age;

} Person;

在这个例子中,Person就是struct类型的别名。之后我们就可以使用Person来代替那个复杂的struct类型。例如:

#include <stdio.h>

#include <string.h>

int main()

{

typedef struct

{

char name[50];

int age;

} Person;

Person p1;

p1.age = 25;

strcpy(p1.name, "John Doe");

return 0;

}

unsigned:无符号类型数据

void:无类型数据,常用于函数返回值类型、函数参数类型等

函数返回值类型:

函数参数类型:

while:循环语句的循环条件开始

变量count初始值为0,然后进入while循环。在循环中,每次打印count的值,然后将count加1。循环将继续进行,直到count的值达到5。当count的值达到5时,循环条件count < 5为假,循环终止。因此,该程序将打印出0到4这五个数字。

标签: #c语言没有return语句的函数将返回什么 #c语言中的保留字是什么