C语言'\0'的含义

’\0’是判定字符数组结束的标识,表示这串字符到结尾了;

注意:在字符数组中’\0’是占一个位置的!

例如 定义char c[6]=“hello”,而在内存中字符数组 c 则是"hello\0";

即’\0’在数组中占有空间却不被我们看到;

所以如果一个长度为10的字符串要放在字符数组里的话就应该把字符数组的长度定义为11;

代码示例:

#include<stdio.h>
int main()
{
    char s[6]="hello";
    int i=0;
    while(s[i]!='\0')
    {
        printf("%c ",s[i]);
        i++;
    }
    printf("\n");
}

输出结果:
h e l l o
Press any key to continue

C语言本身并不支持面向对象编程中的`class`关键字。`class`是C++中用于定义类的关键字,而C语言是一种过程式编程语言,主要通过结构体(`struct`)来实现类似的功能。 虽然C语言没有`class`,但我们可以通过结构体和函数指针来模拟面向对象编程的一些特性。以下是一个示例,展示如何在C语言中模拟类的概念: ```c #include <stdio.h> #include <stdlib.h> // 定义一个结构体作为类的成员变量 typedef struct { int x; int y; } Point; // 定义一个结构体作为类的方法 typedef struct { Point (*add)(Point p1, Point p2); Point (*subtract)(Point p1, Point p2); } PointMethods; // 实现类的成员方法 Point add(Point p1, Point p2) { Point result; result.x = p1.x + p2.x; result.y = p1.y + p2.y; return result; } Point subtract(Point p1, Point p2) { Point result; result.x = p1.x - p2.x; result.y = p1.y - p2.y; return result; } // 初始化类的方法 PointMethods initPointMethods() { PointMethods methods; methods.add = add; methods.subtract = subtract; return methods; } int main() { // 初始化类的实例 Point p1 = {1, 2}; Point p2 = {3, 4}; // 初始化类的方法 PointMethods methods = initPointMethods(); // 调用类的方法 Point sum = methods.add(p1, p2); Point difference = methods.subtract(p1, p2); printf("Sum: (%d, %d)\n", sum.x, sum.y); printf("Difference: (%d, %d)\n", difference.x, difference.y); return 0; } ``` 在这个示例中,我们通过结构体`Point`来模拟类的成员变量,通过结构体`PointMethods`来模拟类的方法。`PointMethods`结构体包含指向方法的函数指针,这些方法可以通过函数指针来调用。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值