日期: 星期日, 2024年3月10日
时间: 下午3:23
基本概念
- 局部变量和全局变量:当局部变量和全局变量同名时,局部变量会在其作用域内覆盖全局变量。
- 字符串长度:
strlen()
函数用于求字符串的长度,不包括终止的空字符\0
。 - 换行符:
\n
用作换行符,使输出结果换到下一行。 - 数组初始化:在C99标准中支持使用变量来指定数组的大小,但此时数组不能初始化。
- 宏定义:一般不把变量名全部大写,因为全大写通常用于宏定义。
#define
不是关键字,而是预处理指令。 sizeof
运算符:sizeof
用于计算类型或变量的大小(以字节为单位),不是关键字,是一个运算符。- 指针大小:指针类型的大小通常是4个字节(32位系统)或8个字节(64位系统)。
static
修饰符:static
修饰的变量存储在静态存储区,其生命周期贯穿程序执行期,但可以修改。
简单的最大值函数示例
#include <stdio.h>
int Max(int x,int y){
return x > y ? x : y;
}
int main(){
int a, b;
scanf("%d%d", &a, &b);
int m = Max(a,b);
printf("m = %d\n", m);
return 0;
}
判断成年示例
#include <stdio.h>
int main(){
int age = 10;
if(age >= 18){
printf("成年\n");
} else {
printf("未成年\n");
}
return 0;
}
使用for
循环打印奇数示例
#include <stdio.h>
int main(){
for(int i = 1; i <= 100; i += 2){
printf("i = %d\n", i);
}
}
switch
语句示例
#include <stdio.h>
int main(){
int day;
scanf("%d", &day);
switch(day){
case 1: printf("星期一\n"); break;
case 2: printf("星期二\n"); break;
case 3: printf("星期三\n"); break;
// 其余case省略
default: printf("输入错误\n"); break;
}
return 0;
}
密码确认示例
#include <stdio.h>
int main(){
char password[30] = {0};
printf("请输入密码: ");
scanf(" %s", password);
printf("请确认密码(Y/N): ");
int ch = getchar();
while(1) {
if (ch == 'Y') {
printf("密码正确\n");
break;
} else {
printf("密码错误\n");
// 密码错误时应该如何处理未说明
}
}
return 0;
}
结构体的定义和使用
结构体是C语言中一种复合数据类型,允许将多个不同的数据类型组合成一个单一的类型。这在编程中非常有用,尤其是当需要处理多个相关数据时,比如处理书籍或学生信息。
结构体定义
在这个示例中,定义了两个结构体:stu
和book
。
struct stu {
char name[20];
int age;
double score;
};
struct book {
char name[20];
int price;
char id[30];
};
struct stu
存储了学生的姓名、年龄和分数。struct book
存储了书籍的名称、价格和ID。
结构体的创建和初始化
结构体可以像普通变量一样被创建和初始化
struct stu s1 = {"张三", 20, 99.9};
struct book b1 = {"C语言", 30, "123456"};
s1
是struct stu
类型的变量,初始化时填充了姓名、年龄和分数字段。b1
是struct book
类型的变量,初始化时填充了书名、价格和ID字段。
访问结构体成员
可以使用.
操作符来访问结构体的成员。
printf("%s的分数是:%lf\n", s1.name, s1.score);
结构体指针
结构体的指针允许直接访问结构体的成员,而不需要复制整个结构体。使用->
操作符可以访问指针指向的结构体的成员。
struct stu* ps = &s1;
printf("%s\n", ps->name);
ps
是一个指向struct stu
类型的指针,它指向s1
。- 使用
ps->name
来访问s1
的name
成员。
// 结构体示例
#include <stdio.h>
struct stu {
char name[20];
int age;
double score;
};
struct book {
char name[20];
int price;
char id[30];
};
int main() {
struct stu s1 = {"张三", 20, 99.9}; // 结构体的创建和初始化
struct book b1 = {"C语言", 30, "123456"}; // 初始化书籍信息
// 使用指针访问结构体成员
struct stu* ps = &s1;
printf("%s的年龄是:%d,分数是:%lf\n", ps->name, ps->age, ps->score);
return 0;
}