C语言学习笔记(数据类型与表达式、函数、字符串函数和文件函数)

2 C语言的学习
2.1学习内容
2.1.1数据类型和表达式
1)ELF格式:linux下由c程序编译生成的可执行程序的格式。
2)小端模式:高字节数据存在高地址,低字节数据存在低地址。大端模式:高字节数据存在低地址,低字节数据存在高地址。(大小端是以字节为单位进行数据存储的)
3)c语言的可移植性(交叉编译)
4)volatite:确保本条指令不会因为编译器的优化而省略。
5)sizeof:一个操作符,返回一个对象或类型所占的内存字节数, eg: sizeof(int);//值为4,sizeof(2+3.15),//值为8。
6)signed和unsigned的区别:有符号数的最大值要比无符号数的小约一半,因为有符号数的最高一位表示符号,eg:signed char:[-128,128),unsigned char :[0,256)。
7)static关键字:如果修饰变量,如:static int a;//a放在数据段中,默认值为0;如果修饰函数:如 static int add (int a,int b){}//static函数(内部函数)只能被本文件中的函数调用,而不能被同一程序其他文件中的函数调用。
8)inline函数(内联函数):内联是以代码膨胀(复制)为代价,仅仅省去了函数调用的开销(用到栈,压栈,出栈),从而提高函数的执行效率。
9)int m;m=1+1.7;先将1隐式转换为1.0(float比int精度高),再1.0+1.7=2.7(再强制转换成int类型2,不遵循四舍五入)。
10)return:结束所有层循环,continue:结束一趟循环,break:跳出一层循环。
11)while:先判断再执行,条件不成立,执行0次,do…while:先执行再判断,条件不成立,至少执行一次。
12)在执行main函数之前:操作系统要把程序加载到内存中去,初始化相应内存空间,准备好参数。

2.1.2函数、字符串函数和文件函数
1)int *p=&a,p与a的大小无关,p内存放地址,只与操作系统位数有关。
2)全缓冲:当填满标准I/O缓存后才能进行实际I/O操作,(对磁盘文件的读写) 行缓冲:在输入或者输出遇到换行符时,才执行真正的I/O操作(stdin和stdout) 不带缓冲:不进行缓冲直接显示出来(stderr)。
3)多个C文件遵循的原则:一个功能一个函数,一个模块一个C文件,一个C文件一个头文件,C文件放定义,头文件放声明。
4)求字符串长度(strlen函数):不包括\0,如:strlen(“hello\0haha”);//遇到\0就结束,值为5。求占用的存储空间(sizeof函数):包括\0,如
sizeof(“hello\0haha”);//包括字符串末尾的\0,值为11+1=12。
5)字符串匹配子串(strstr函数):如:char *p; str=”helloworld”;p=strstr(str,”world”);//若未找到则返回p=NULL,如找到则返回P=该字符串的首地址。
6) 在使用文件前应打开文件,用完后需要关闭。fopen()函数用于打开文件,其调用格式为:FILE * fopen(const char * filename,const char * type); filename包含了路径的文件名,type为文件打开方式(6种类型:”r”,”w”,”a”,”r+”,”w+”,a+”)。fclose()函数用来关闭一个有fopen()函数打开的文件,其调用格式为:int fclose (FILE *stream);该函数返回一个整数型。当文件关闭成功时,返回0,否则返回一个非零值。
7)文件的顺序写函数——fprintf(),fputs(),fputc()函数:fprintf()函数原型:int fprintf (FILE *stream,char *format,);//该函数的返回值为实际写入文件中的字节数,若写错误,则返回一个负数。fputs()函数原型:int fputs( char * string,FILE * stream);//该函数返回0表明将string指针所指的字符串写入文件中的操作成功,否则失败。fputc()函数返回一个向文件所写字符的值,此时写操作成功,否则返回EOF。
8)文件的顺序读操作函数——fscanf(),fgets(),fgetc()函数。fscanf()函数的原型:int fscanf(FILE *stream,char *format,);//该函数用法与scanf()函数类似,只是它是从文件中读到信息。fget()函数原型:char fgets(char *string ,int n,FILE *stream);//从文件中读取至多n-1个字符(n用来指定字符数),并把它们放入string指向的空指针中,在读入之后自动向字符串末尾加一个空字符,读成功返回string指针,失败返回一个空指针。fgetc()函数原型:int fgetc(FILE *steam);//该函数返回文件当前位置的一个字符,读错误返回EOF。
9)更新缓冲区函数(fflush()函数):int fflush(FILE * stream);//该函数通常用于处理磁盘文件,会强迫将缓冲区内的数据写回参数stream指定的文件。

2.2学习体会及总结
学习任何一门语言都是需要多练习,多运用。在掌握好基础知识后,更重要的是要多写代码,勤加练习!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值