语法基础
C语言的语法比较简单,主要包括数据类型、变量、运算符、控制语句(如if语句、for循环、switch语句等)、函数和数组等。
数据类型
C语言提供了基本数据类型,如整型、浮点型、字符型和布尔型等。还可以使用struct
关键字定义自定义的复合数据类型。
在32位操作系统中
char(1个字节)
short(2个字节)int(4个字节)long(4个字节)
float(4个字节) double(8个字节)
在64位操作系统中
char(1个字节)
short(2个字节)int(4个字节)long(8个字节)
float(4个字节) double(8个字节)
变量和常量
C语言中,使用关键字int
、float
、char
等来声明变量,并使用赋值语句给变量赋初值。常量是不可修改的值,可以使用#define
指令定义常量。
运算符
C语言支持各种算术运算符(如加减乘除、取余等)和关系运算符(如等于、大于等),同时也提供了逻辑运算符(如与、或、非等)和位运算符等。
控制语句
C语言中的控制语句包括条件语句(如if语句)、循环语句(如for循环、while循环)、选择语句(如switch语句)等,用于根据条件执行相应的代码块。
函数
函数是C语言中的基本组织单位,可以将代码划分为多个函数。C语言提供了一些内置函数,同时也可以自定义函数来完成特定的任务。
概念 :函数:具有独立功能的一个模块。
作用:提高代码的复用率,将程序变得模块化。
函数的分类:库函数,调用函数,自定义函数。
定义函数
存储类型 数据类型 函数名(形式参数列表)
{
函数体;
返回值;
}
数据类型:函数返回值的数据类型
函数名:标识符(命名规则)(见名知意)
形式参数列表:实现这个功能,需要传递的参数
函数体:具体实现功能
返回值:若没有返回值,void。如果有返回值!有且只能有一个!!!!
函数名(实际参数);
注意:
- 需要将实参的值拷贝给形参,实参的个数以及数据类型必须和形参一样
- 实参可以使变量,常量,表达式,但是必须是一个给定的值
- 实参和形参是两块独立的内存空间(所以实参和形参可以重名)
- 传参实际上是将实参的值拷贝给形参
- 形参是局部变量,在函数调用的时候开辟空间,函数调用完毕之后,释放空间
数组
数组是一组相同类型的数据元素的集合,可以通过下标访问和操作数组中的元素。在C语言中,数组的下标从0开始。
指针
指针是C语言的重要概念,它是一个变量,存储了内存地址。通过指针,可以直接操作内存中的数据,实现高效的内存管理和数据操作。
指针是一个数据类型,他是一个用来保存地址的数据类型
地址的本质:内存单元的编号
指针:地址
指针的本质:内存单元的编号
地址就是指针
指针就是地址
定义:存储类型 数据类型 *指针变量名;
数据类型:去掉变量名,剩下的就是数据类型
*的作用:
- 表示指针这种数据类型
- 双目运算符:乘法
- 单目运算符:取值(*地址)
- 注意:*和&互逆
字符串
C语言中的字符串是由字符组成的字符数组,以空字符\0
结尾。可以使用字符串函数来进行字符串操作,如拷贝、连接、比较等。
char * pc="helloworld" 和char str[20]="helloworld"区别和联系
不同点:
char *pc="helloworld"; //pc是个指针变量
char * pc=NULL;
pc="helloworld";
char str[20]="helloworld"; //数组名[下标] 下标是从0开始
char str[20]={'\0'}; //数组名 指针常量 (×)
str="helloworld";
str[]="helloworld"; (×)
char str[]="helloworld";(√) 全部初始化的时候[元素的个数]大小也可以省略掉
相同点:
#include int main(void)
{
char * pc="helloworld";
char str[20]="helloworld"; //printf("%d %f %c\n",变量的名字);
//printf("%s",字符串的首地址);
printf("%s\n",pc);
printf("%s\n",&str[0]);
//在数组中,数组名代替的是一个元素的首地址 str=&str[0]
printf("%s\n",str);
printf("%c\n",str[0]);
return 0;
}
这些是C语言的一些重点内容,掌握了这些知识,就可以进行基本的C语言编程。当然,除了理论知识,还需要通过实践不断提升编程能力。