c语言笔记

发布 2021-05-12 00:48:28 阅读 4100

每次用到变量都需要先声明定义;

常量定义:类型符 const 变量名=值;

int整形变量;%d

float单精度浮点型;%f

char字符型变量,只能存一个字符;

c是字符常量;

x以16进制输出;

o以8进制输出,10进制整数以8进制输出,符号也作为数值输入;

u输出unsigned格式的值;

s输出字符串,%3s,%-3s,%3.4s,%-3.4s。后两个是截取4个字符,输出3个位置;

e格式符,以指数的形式输出;%这里的n是小数点后面的位数;

printf是个函数,他的返回值是输出的字符串大小;

while(条件)

循环语句块;

[break];跳出循环。

for(int i=0;i<=5;i++)定义循环次数变量且变量起始值;变量终值;步长)

语句块;[break];跳出循环。

if (条件)

语句块;else

语句块;子程序的调用需要把子程序放在main()函数的前面声明,或在要调用子程序前,把函数名写出,如:int max(int a,int b)

d,对应的是整形变量的输出;

f是单精度浮点型变量的输出;%10.2f,小数点后面取2位,第三位以4舍5入形式输出;

n换行符;取址符号,scanf(”%d”,&a)中必须要用;

scanf(”a=%d”,a);在输入值的时候必须按照格式输入,如:a=15,而不是直接输入15;

m=n%3;其中%是取余的意思,相当于mod;且只能在整形变量中使用;

&;符号相当于and;

int main()

中必须返回一个整数,而void main()则不需要返回;

如果在c中没有给以个变量赋值的话,那么这个变量的值是以个随机数;而在vb中则是个0值;

sqrt(n)=sqr(n)根号n的意思;

sizeof(变量名);通过这个函数能返回变量占用的字节大小;

正数的补码是和源码是一样的,signed int 有符号数;

unsigned int 无符号数(大于0);

浮点型数据:123e3=123*10三次方;float,double,long double;对应的格式说明符是。

f,%lf,%lf;

类型名)(表达式)强制类型转换符,如(int)(3.6);变成3;

字符的运算是变成ascii值进行运算的;

不同的编译器对i++和i—的理解不一样;

优先级是相等的,是自右至左;

switch(表达式)

case值:语句块;

break;

case值:语句块;

break;

default:语句块;

break;

如果没加break的话会产生case穿透,即所有的语句都执行;

关系运算符优先级大于赋值运算符;

putchar,字符输出函数,用法:putchar(表达式);

getchar,字符输入函数,getchar()里面不需要参数;

c=a>b ? a:b 条件表达式当a>b成立的时候,c=a,否则c=b.条件表达式是自右往左;

表达式1?表达式2:表达式3;如果表达式1成立执行表达式2且返回表达式2的值否则执行表达式3且返回表达式3的值;这里的表达式可以是多条语句,但是要用括号括起来;

continue;语句,结束本次循环,进行下一次循环;

break;语句结束循环,跳出循环;

abs(int);形参是整形的;

fabs(double);形参是浮点型的;

整形数据的“/”除是取商,“%是取余;

a[10];数组中有10的元素,分别是a[0]-a[9];

数组中数组名是数组的首地址,int *p;中*是间接引用的意思即通过地址访问内存空间,获取内存空间的值;

a[3][4];二维数组的初始化,char* gets(char *str),从键盘输入字符串,返回给变亮;

strcat(str1,str2)把str2的字符串连接到str1中;相当于vb众的&

strcpy(str1,str2)把str2的字符串复制到str1中;

strcmp(str1,str2),str1和str2比较如果str1=str2,则返回0;str1strlen(str),返回字符串的个数;不返回“\0”;

strlwr(str),把str字符串的大写字母变成小写字母,ucase;

strupr(str)与strlwr相反,是把str变成全大写字母;

子函数的调用,可以把子函数放在其他的源文件中;

形参只有在调用该函数的时候才有内存空间,当调用结束后内存就被施放;

函数的调用:数组作为形参和实参是传递的是数组的首地址;

变量;全局变量和局部变量;

auto变量和static变量register变量,extern变量;

预处理:不分配存储单元;

预处理不是c语言,是在编译前执行的,不用加分号;

包括:无参宏定义;#define pi 3.1415926;#define 标识符(宏名) 字符串;让宏名等于字符串叫宏展开。

#undef 终止宏定义,#undef 标识符(宏名);

有参宏定义;#define a(参数) 字符串;有点像有参函数的使用;

宏定义能替换c中的关键字;

文件包含:#include “文件名”或《文件名》;前者是用户自己的源文件,后者是c库中的源文件;

头文件的后缀名是。h;

条件编译:当满足一定条件时候才编译一条语句,不满足的时候编译另一条语句;

#ifdef 标识符。

#程序段;#else

#程序段2;

#endif

#ifndef 标识符。

#程序段;#else

#程序段;#endif

#if 表达式。

程序段1#else

程序段2#end if

指针:见c语言程序设计的书;

二维数组的指针表示;a[3][4];

a[0]表示二维数组中的第一个一维数组的第一个地址,a[1],a[2];

a[0]+1,a[0]+2,分别表示一维数组中的第一个值,和第二个值;

(*(p+i)+j)用指针表示第i行第j列的数组值;

int (*p)(int ,int);用指针做函数名;p=max;把函数名赋给指针;

prossse(int ,int ,int(*p)(int,int))这里的int (*p)(int ,int)代表的是要求输入一个指针函数名;

char *a[4];数组指针;对数组指针需要用指向指针的指针,既char **p;其中*p引用到字符串而**p引用到字符串中的字符;

把c写的程序在dos界面下运行,有意想不到的效果;

malloc函数,calloc函数;

结构体:struct 结构体名;相当于vb众的type

end type

成员表列;;分号必须;

在使用的时候要声明:struct 结构体名变量名;

可以多层嵌套使用;

struct student

long…char..

a=;也可以这样赋值;在主函数中这样用行;

变量可以是数组;

定义一个结构体指针:struct 结构体名指针;

*p).成员名;

p->成员名;“-是指向运算符;

struc student stu[3]=;

声明:enum 枚举名变量名;

变量名只能是枚举中的内容,否则出错;

按常量处理;

typedef int t;此时的t=int;

type int arr[10];

arr a;此时的a是int类型的长度为10的数组;

typedef int (*pointer)(int,float);定义了一个函数的指针;

与宏定义类似;#define;

位运算中是每个比特位中都进行位运算。

按位与,常用来保留指定位数的值;或用来清0;

按位或,常用来在指定位置插入个1;

按位异或值相同则为0,不同则为1;与1异或常用来取反;与0常用来保留原值;

交换两个值不用第三个变量;a=a^b;b=a^b;a=a^b;

取反运算符。

不同长度的位运算,右端对齐,正数左端补0,负数左端补1;

位段结构体:

struct data

unsigned a:2;定义了用两个比特位存储信息,既能存最大值3;

unsigned :0;可以分开分别占不同的字节;

unsigned b:4;

data;必须是unsigned类型;连续的存储位置;

unsigned short int 类型的数值在参与运算的话会变成4个字节既32个比特位的值;

文件操作:file *fp;定义文件指针;

fp=fopen(“

fclose(fp);关闭文件;

exit(0);关闭本程序的进程;

fcloseall() 返回关闭文件的个数;

fgetc(文件指针)对文件的读取;返回值是文件位置指针的内容;每次只读出一个内容;

fputc(内容,文件指针);

rewind(文件指针);重新让文件重第一个位置开始读;

fflush(文件指针);刷新文件缓冲区;就是把文件内容冲缓冲区写入文件;

eof==-1文件结束;

fgets(字符串指针,长度,文件指针);从一个文件中读取字符串;最后一个是“\0”

fputs(字符串指针,文件指针);把字符串输入文件中;

gets(文件指针);把键盘输入的字符串存到文件指针中;和getchar()一样;

fprintf(文件指针,“%d”,c);格式化输入,既有%d,%s类的格式化输入;在输入字符串的时候需要输入一个“”表示字符串结束,这样在用fscanf读取的时候才能正常读取字符串,而不会把后面的内容也当字符串内容输出;或每个格式用空格隔开;

fscanf(文件指针,“%d”,地址);

C语言笔记

第一课时。c语言标准格式。include vidomain 以 开头的语句称为预处理指令。include语句不是必须的,但是如果一旦有该语句就必须把它放在文件开始处是standared input output header的缩写standared 标准input 输入output 输出header...

C语言笔记

c语言算法和数据类型。整型。基本类型 字符型注释 基本类型的特点是其不可实型 单精度型以再分解为其他类型双精度型数组型。数据结构 构造型 结构体型共用体型指针型空类型。一 常量。define 语句不以分号结尾,它可以放在源 的任何位置。不过在定义常量时,只有在它定义后的源 中才有效。是一个修饰符,在...

c语言笔记

1.if中别忘了 而不是 2.写完程序别忘了检查前后大括号 小括号是否完全照应。3.遇到几分之几的分数可以方程两边同时乘以一个数来消去分母。4.写指针题时看准指针对应的是行还是列。例 int a 4 3 int p a 0 列指针。int ptr 3 a 行指针。5.考虑好哪些量会随着循环不断改变。...