C语言代码示例:结构体、函数指针和字符串操作
本代码示例演示了 C 语言中的结构体、函数指针和字符串操作。
首先,我们定义了一个名为 books 的结构体,它包含三个成员:id、name 和 pricing,分别用于存储书籍的 ID、名称和价格。
接下来,我们定义了一个名为 add 的函数,它接受两个整型参数 a 和 b,并返回它们的和。
在 main 函数中,我们首先调用 printf 函数输出字符串 "Hello, World!",然后调用 add 函数计算两个数的和,并输出结果。
接着,我们定义了一个整型数组 a,并使用 for 循环遍历数组元素。在循环中,我们使用指针变量 p 指向数组元素,并判断当前元素的值是否等于 3。如果是,则将元素值改为 1。最后,我们使用 printf 函数输出元素值和指针地址。
然后,我们定义了一个函数指针 ad,并将其指向 add 函数。我们使用 ad 指针调用 add 函数,并输出结果、函数地址和函数大小。
最后,我们定义了一个 books 结构体变量 cunshang,并使用 strcpy 函数将字符串分别复制到 cunshang 结构体中的 name、pricing 和 id 成员。最后,我们使用 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;
}
原文地址: https://www.cveoy.top/t/topic/oWpk 著作权归作者所有。请勿转载和采集!