//#include "xxxx.h"或#include <xxxx.h>为引用头文件,头文件中存在系统定义好的函数,可以·方便操作者使用
#include <stdio.h>
//字符串strcpy处理的函数的出处
#include <string.h>
//字符串atoi处理的函数的出处
#include <stdlib.h>
//使用assert函数检查文件是否为空
#include <assert.h>
//注:请从void main()开始看起
//宏定义
//#define 定义名字(标识符) 需替代的内容(字符串)
//注:不需以";"结尾
//使用undef 标识符 语句 终止该标识符的作用域
#define YELLOW 4
//定义带参数的宏
#define V(a,b,c) a*b*c //可类似简单小函数
//自动变量:在函数体或复合语句中定义的非静态变量
//c语言编译时部队自动变量赋初始值,只有当程序执行到自动变量的作用域时,程序才自动分配空间,复合语句或函数执行完后,
// 自动变量才被释放销毁:自动变量存储在程序的为动态存储空间
//register声明:寄存器变量
//static 修饰的为静态局部变量,编译时程序需对静态变量赋初始值 ,运行期间均占用程序的存储空闲,直到程序退出后才释放该空间
//外部变量(全局变量) :为静态储存空间, 运行期间均占用程序的存储空闲,直到程序退出后才释放该空间。
//在定义变量或输出语句 以及do-while()、continue,break等的末尾需要添加";"号
//void为空,引用该定义赋的函数可以存在不反回值,int,double,char,再函数开头定义的函数必须具有该定义类型的返回值
//函数定义:修饰符 函数名(形参,形参,...){...... return 修饰符修饰的该类型变量}
//调用:函数名(实参,实参,....);注:形参实参个数一一对应。例:以下面的函数为例,调用: int a[]={1,2,3,4,5} sort_bubble(a,9)
//下面的函数的形参为int *array与int len;表名其中一个是数组类型或指针类型,另一个为int类型
void sort_bubble(int *array,int len)
{
int i,j,k;
for(i=0;i<len;i++){
for(j=0;j<len-i-1;j++){
if(array[j]>array[j+1]){
k=array[j];
array[j]=array[j+1];
array[j+1]=k;
}
}
}
}
//打印int数组成员的函数
void printf_arrays(int *array,int len)
{
int i;
printf("数组排序后:");
for(i=0;i<len;i++){
printf("%d ",array[i]);
}
}
//冒泡排序的函数
void sort_printf(char *array,int len){//形参代表可传数组或指针,与int 类型变量
int k;
printf("\n");
for(k=0;k<len;k++){
printf("%c\t",*(array+k));//*(指针+k)等价于:数组[k] 其中数组和该指针的名字相同
}
}
//其他排序请自行查找
//结构体
struct student
{
int num;
float score;
struct student *next;
};
//typedef定义了一个使用stu来声明这个studentT结构体
typedef struct studentT{
char name[32];
int num;
char sex[16];
int score;
}stu;
int main()
{
//常识
//编译器不同,数据类型也不同:
//以int为例
//8bit=1个字节(byte)=(0000-0000)
//int为4个字节:32位的win、linux操作系统 (VC和gcc的结果)
//int为2个字节:DOS,16位操作系统程序TC,KEIL下51类单片机
//int为8byte:不少64位pc端软件
//(16位编译器:2个字节)
//范围(2^16)-1=65535:-32768——32767 ::::此为计数范围公式
//int:4个字节
//long:4个字节
//short:2个字节
//float:4个字节
//double:8个字节
//char:1个字节
/*
printf("\n");
printf("char=%d",sizeof(char));
printf("\n");
printf("long=%d",sizeof(long));
printf("\n");
printf("int=%d",sizeof(int));
printf("\n");
printf("short=%d",sizeof(short));
printf("\n");
printf("float=%d",sizeof(float));
printf("\n");
printf("double=%d",sizeof(double));
char ch='a';
char ch2="a";
char ch3="啊";
printf("\n");
printf("单引号=%d",sizeof(ch));
printf("\n");
printf("双引号=%d",sizeof(ch2));
printf("\n");
printf("中文=%d",sizeof(ch3));
"\0"为结尾标记符
*/
///////////注:当数据超出范围时可能编译失败
//数据类型
//整型 非小数
//(32位编译器)
//范围:-2147483648——2147483647
//int Inumber=2147483648;
//printf("Inumber=%d",Inumber);
//输出:Inumber=-2147483648 当超过的时候倒着来数 如:2147483649时,输出:-2147483647
//圆圈形式
//printf("\n");//换行符
//printf("\t")横向跳格,跳到下一个输出区(一个输出区占8个字符)
//printf("\v")竖向跳格
//printf("\b")退格
//printf("\r")回车
//printf("\f")走纸换页
//printf("\\")反斜杠\
//printf("\'")单引号
//printf("\ddd") 1~3位八进制代表的字符(\101='A')
//printf("\xhh") 1~2位十六进制代表的字符(\x40='A')
//常用字符 ASCII8(16进制)
//‘A’ 64(0x40)
//‘B’ 65(0x41)
//‘a’ 97(0x61)
//‘b’ 98(0x42)
//‘0’ 48(0x30)
//‘1’ 49(0x31)
//短整型
//(32位编译器:但为2个字节)
//范围:-2147483648——2147483647
//short Snumber=-2147483649;
//printf("Snumber=%d",Snumber);
//输出:Snumber=0
//输入:Snumber=+-2147483648 输出:0 当超过的时候重头来数 如:2147483649时,输出:1 如:-2147483649时,输出:-1:符号不变
//以0位中心的两个圆圈
//printf("\n");//换行符
//长整型
//(32位:4个字节)
//范围:-2147483648——2147483647
//long Lnumber=-2147483648;
//printf("Lnumber=%d",Lnumber);
//输出:Lnumber=-2147483648
//输入:Lnumber=2147483648 输出:2147483647 当超过的时候记最大值 如:2147483649时,输出:2147483647
//以0位中心的两条线段,范围不可超过编译器位数
//printf("\n");//换行符
//unsigned可修饰long short int
//表示无符号,即正数
//(32位编译器:2个字节):注:unsigned long:4字节、short、int2:字节
//范围:0——2147483648
//unsigned short USnumber=2147483648;
//printf("USnumber=%d",USnumber);
//输出为0,输入:2147483649,输出为1
//printf("\n");//换行符
//浮点型
//——> 注:取值范围看指数位,精度看位数位
//4个字节
//(1位符号位,8位指数位,23位尾数位)
//由于2^8=(-128——127) 所以取值范围:-2^128——2^127 约为-3.4E38——3.4E38
//小数精度:2^23=8.3E6可表示小数点后七、八位根据编译器而定
float Fnumber=25.12345678910111213;
printf("Fnumber= %9.8f",Fnumber);
//输出:Fnumber= 25.12345695 注:可根据自己想要结果调%f,例%10.8f
printf("\n");//换行符
//8个字节
//(1位符号位,11位指数位,52位尾数位)
//由于2^11=(-1024——1023) 所以取值范围:-2^1024——2^1023
//小数精度:2^52=4.5E15可表示小数点的十五、十六位
double Dnumber=25.12345678910111213;
printf("Dnumber= %9.8lf",Dnumber);
//输出:Dnumber= 25.12345679
printf("\n");//换行符
//字符型
char ch='a';
char ch2='a';
char ArrayCh[]="abcd";
char ArrayCh2[]="1234abc";
printf("\n");
printf("ch=%d",sizeof(ch));//一个字节
printf("\n");
printf("ch2=%d",sizeof(ch2));//一个字节
printf("\n");
printf("字符串1=%d",sizeof(ArrayCh));//五个字节,最后一个属于结尾符号
printf("\n");
printf("字符串2=%d",sizeof(ArrayCh2));//八个字节,最后一个....
//printf("%f") float
//printf("%lf") double
printf("\n");
int i=1234567;
int i2=1234;
int i3=125;
printf("7w=%6d",i);
printf("\n");
printf("6w=%6d",i2);
printf("\n");
printf("5w=%5d",i3);
printf("\n");
//printf("%6d") 输出6位十进制数,超出按实际位数输出 ,不足将空出空格
//printf("%06d") 输出6位十进制数,超出按实际位数输出 ,不足将空出00补充
//printf("%s") 字符串
//printf("%c") 字符
float a=1234532.83456;
printf("a=%8.7f",a); //总共可输出8位 ,当前面8位整数满了时,后面小数化为0,最靠近小数点的那位采取四舍五入
//输出:a=12345322.0000000
//输入:a=1234532.83456,输出为:a=1234532.8750000:此时小数点不固定 ,未知的以0补充
//printf("%8.7f")
//printf("%18.16lf") 同上
//printf("s[]=%6.9s")输出最多9个字符
//printf("%p") 输出指针的值
//printf("%x") 输出八进制ASCII码
//注:类型级别由低到高(char,short—int——unsigned—long—double;float—double)的顺序进行转换。
// 算法 、方法
//while()、do-while()、break、if()-else、switch-case-break、return、goto、for()、continue、
//++i与i++、&&、||、+=、scanf()、getchar() 、putchar()、printf()、gets()、puts()、获取数组长度sizeof(arrays)/sizeof(arrays[0])
//数组:有序数据的集合,元素类型相同,顺序存储结构,占用相同存储空间,且必须先定义后使用。
//静态数组变量编译时自动将数据初始化为0,动态数组在执行时才分配空间,且初始值为随机
//c语言只能逐个引用数组元素,不能一次性引用整个数组
char c;//在循环外面进行创建,避免了反复创建变量导致浪费空间的缺点
int Arraysi[]={2,34,5,64,123,-31,0,23,44};//第一种定义数组的方法
int Arraysi2[10]={1,42,23,14,35,66,47,28,99,0};//第二种,先定义长度,然后在里面定义内容
int TArray[3][3]={
{1,2,3},{4,5,6},{7,8,9}};//格式int TArray[i][j]={
{1,2,3,...},{4,5,6,...},{7,8,9,...},{....}};
int conditionNumber=0;
//公式:do{......循环类容}while(判断条件);
//公式:while(判断条件){执行内容}
//两者区别:do-while()不管条件成不成立都需要先执行一次内容,在开始判断,而while直接判断,符合条件的才开始执行内容
do{
int conditionNumber=0;
while((++conditionNumber)!=25)//++i先进行++,即先给conditionNumber赋值, 在进行判断
{
printf("\n");
printf("输入a,b,c,d,e,f:");
printf("\n\ta:调用冒泡排序");
printf("\n\tb:调用冒泡排序");
printf("\n\t
(C语言笔记精选)一篇代码带你快速复习c语言入门知识点
最新推荐文章于 2025-07-08 20:42:59 发布