本代码示例演示了 C 语言中的结构体、函数指针和字符串操作。

首先,我们定义了一个名为 books 的结构体,它包含三个成员:idnamepricing,分别用于存储书籍的 ID、名称和价格。

接下来,我们定义了一个名为 add 的函数,它接受两个整型参数 ab,并返回它们的和。

main 函数中,我们首先调用 printf 函数输出字符串 "Hello, World!",然后调用 add 函数计算两个数的和,并输出结果。

接着,我们定义了一个整型数组 a,并使用 for 循环遍历数组元素。在循环中,我们使用指针变量 p 指向数组元素,并判断当前元素的值是否等于 3。如果是,则将元素值改为 1。最后,我们使用 printf 函数输出元素值和指针地址。

然后,我们定义了一个函数指针 ad,并将其指向 add 函数。我们使用 ad 指针调用 add 函数,并输出结果、函数地址和函数大小。

最后,我们定义了一个 books 结构体变量 cunshang,并使用 strcpy 函数将字符串分别复制到 cunshang 结构体中的 namepricingid 成员。最后,我们使用 printf 函数输出 cunshang 结构体中各个成员的值。

代码中有一个常见的语法错误:在 main 函数中最后一次调用 printf 函数时,字符串字面量被错误地用单引号 (' ') 括起来了,应该使用双引号 (" ")。正确的语句应该是:

printf("书名:%s	价格:%s	批次号:%s",cunshang.name,cunshang.pricing,cunshang.id);

这个错误会导致编译器报错,因为单引号用于表示字符常量,而双引号用于表示字符串字面量。

完整代码:

#include <stdio.h>
#include <string.h>

int add(int a, int b) {
	return a + b;
}

// 结构体
struct books {
	char id[50];
	char name[50];
	char pricing[50];
};

int main() {
	/*  Write C code in this online editor and run it. */
	printf("Hello, World! \n");
	printf("\n%i\n%d", add(7, 9), add(1, 2));

	int a[5] = {1, 2, 3, 4, 5};
	for (int i = 0; i < 5; i++) {
		int *p;
		p = &a[i];
		if (a[i] == 3) {
			a[i] = 1;
		}
		printf("\n%d\t%p", a[i], p);
	}
	int (*ad)(int, int) = &add;
	printf("\n函数的值是%d\n内存地址是%p\n储存的大小%lu", ad(1, 3), ad, sizeof(a));
	struct books cunshang;
	strcpy(cunshang.name, "村上村树");
	strcpy(cunshang.pricing, "七六");
	strcpy(cunshang.id, "一");
	printf("书名:%s\t价格:%s\t批次号:%s", cunshang.name, cunshang.pricing, cunshang.id);

	return 0;
}
C语言代码示例:结构体、函数指针和字符串操作

原文地址: https://www.cveoy.top/t/topic/oWpk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录