C语言学习笔记
基础语法
注释
int main() { //这是单行注释 /* * 多行注释 */ }
变量
变量声明
(图片来源网络,侵删)
格式:type name
int main() { //变量的声明 int num; //变量使用 num=1; //声明多个变量 int num1,num2; //变量的初始化 int num3=1; }
int num; num=10;
常量
const double PI = 3.14;
基础数据类型
数据类型 | 存储大小 | 范围 |
---|---|---|
char | 1 字节 | -128 到 127 |
signed char | 1 字节 | -128 到 127 |
unsigned char | 1 字节 | 0 到 255 |
short | 2 字节 | -32,768 到 32,767 |
signed short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
int | 2 或 4 字节 | -32,768 到 32,767 |
signed int | 2 或 4 字节 | -32,768 到 32,767 |
unsigned int | 2 或 4 字节 | 0 到 65,535 |
short int | 2 字节 | -32,768 到 32,767 |
signed short int | 2 字节 | -32,768 到 32,767 |
unsigned short int | 2 字节 | 0 到 65,535 |
long int | 4 字节 | -2,147,483,648 到 2,147,483,647 |
signed long int | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long int | 4 字节 | 0 到 4,294,967,295 |
float | 4 字节 | |
double | 8 字节 | |
long double | 10 字节 |
整数
int id;
unsigned只能储存零值和正数。
unsigned int x; int y;
浮点数
float salary;
字符
char test = 'h';
运算符
类型转换
语法:(type)name
注意:始终建议将较低的值转换为较高的值,以避免数据丢失。
输入
输出
数据类型 | 格式说明符 |
---|---|
int | %d |
char | %c |
float | %f |
double | %lf |
short int | %hd |
unsigned int | %u |
long int | %li |
long long int | %lli |
unsigned long int | %lu |
unsigned long long int | %llu |
signed char | %c |
unsigned char | %c |
long double | %Lf |
整数输出
int main() { int num=10; printf("%d",num); }
单精度浮点和双精度浮点数输出
int main() { float num=1.3; double num1=1.4; printf("%f\n",num); printf("%lf\n",num1); }
打印字符
int main() { char c='1'; printf("%c\n",c); }
检查变量的大小
格式:sizeof(name)
int main() { short b; int c; long long e; printf("%d\n",sizeof(b)); printf("%d\n",sizeof(c)); printf("%d\n",sizeof(e)); }
空类型
void是空类型,一般用于函数的返回类型表示,表示该函数啥都不返回。
例如,如果函数不返回任何内容,则其返回类型应为void。
储存类
复合数据类型
数组
数组的语法 : Type Name[Size];
int main() { //数组的声明 int arr[10]; //数组的初始化 int arr1[10]={1,2}; }
在C语言中超时数组索引不会报错。
int main() { //数组声明长度,超出索引不会报错 int arr[1]; arr[0]=0; arr[1]=1; arr[2]=2; for (int i = 0; i字符串
在C语言编程中,字符串是以null字符\0结束的字符序列。
//声明字符串 char s[5]; //初始化字符串 char c[] = "abcd"; char c[50] = "abcd"; char c[] = {'a', 'b', 'c', 'd', '\0'}; char c[5] = {'a', 'b', 'c', 'd', '\0'};指针
指针是用来储存变量地址的特殊变量
声明指针
语法:type *name
int *p指针赋值变量地址
int main() { int *p; int num=5; p=# printf("%d", *p); }流程控制
for
while
break continue
if...else
swtich
goto
函数
序号 | C函数方面 | 语法 |
---|---|---|
1 | 函数声明 | return_type function_name(argument_list); |
2 | 函数调用 | function_name(argument_list) |
3 | 函数定义 | return_type function_name(argument_list){function body;} |
没有返回值
void hello(){ printf("hello c"); }
结构体
声明结构体
int main(){ //定义结构体 struct SIMPLE { int a; }; //声明结构体 struct SIMPLE t1{}, t2[20], *t3; printf("%d",t1.a); }
typedef 声明结构体
int main(){ //定义结构体 typedef struct { int a; }SIMPLE; //声明结构体 SIMPLE t1{}, t2[20], *t3; printf("%d",t1.a); }
初始化匿名结构
int main(){ struct { int a; }; }
初始化匿名结构体带默认值
int main(){ struct { int a; }s={1}; }
嵌套结构体
结构体包括其他结构
结构体包括指向自己的指针
struct NODE { char string[100]; struct NODE *next_node; };
指向结构的指针
int main(){ //定义结构体 typedef struct { int a; }SIMPLE; //声明结构体指针 SIMPLE *pt,t; t.a=1; pt=&t; printf("%d",pt->a); }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。