补习c语言基础笔记
#include<stdio.h>
#include 导入一个文件
stdio 一个标准输入输出库
.h 头文件
<> 导入系统文件
""导入自定义文件
system
执行cmd命令,可以打开外部的应用程序
printf("%d\n",value);
%表示一个占位符,表示输入一个整形数据
C语言编译步骤
预处理-编译-汇编-链接
定义常量方式:
const 数据类型 常量名=值
#define 常量名 值
宏定义
#define M (n*n+3*n)
#表示这是一条预处理命令,所有的预处理命令都以 # 开头。define是预处理命令。宏名是标识符的一种,命名规则和标识符相同。字符串可以是数字、表达式、if 语句、函数等。程序中反复使用的表达式就可以使用宏定义
#include<stdio.h>
#include<stdlib.h>
int main() {
int a, b;
scanf("%d,%d", &a, &b); //输入函数 特殊的符号 &(取地址符)
printf("%d + %d = %d" , a, b, a + b); //输出函数
system("pause");
return 0;
}
字符串
以’/0’结束,用char数组代替
函数在主函数之后需要声明函数
指针
&:取地址运算符,升维度的
*:取值运算符,降维度的
32位系统下所有的指针类型存储的都是内存地址,所有的内存地址都是无符号16进制整形数(int),占用4个字节(64位系统则是8个字节)
通过二级指针 可以修改1级指针的值和对应内存空间的值
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[] = {1, 2, 3, 4};
//数组名是一个常量 不允许直接赋值
//数组名是数组首元素地址
//arr=100 ;err
int *p;
p = arr; //直接给指针变量赋地址
// printf("%p\n", p);
// printf("%p\n", arr);
//*==[]?
//printf("%d\n", *arr);
printf("%d\n", *(arr) + 1);
p++;
printf("%p\n", arr);
printf("%p\n", p);
// for (int i = 0; i < 4; i++)
// {
// printf("%d\n", arr[i]);
// //printf("%d\n", p[i]);
// }
system("pause");
return 0;
}
函数参数为数组时,数组会退化成指针
数组作为函数参数会退化成指针 丢失数组的精度
指针操作数组时下标允许是负数
全局变量、局部变量、静态全局变量、静态局部变量区别