C语言学习
SuzumiyaSAMA
这个作者很懒,什么都没留下…
展开
-
C语言程序设计进阶 第一周1.1笔记
数组变量本身表达地址,所以:数组变量是特殊的指针,inta[10];int*p=a;//无需用&取地址但是数组的单元表达的是变量,需要用&取地址a==&a[0][]运算符可以对数组做,也可以对指针做:p[0]a[0]*运算符可以对指针做,也可以对数组做:*a=25;数组变量是const的指针,所以不能被赋值b[ ] int * const b指针是cons原创 2015-12-19 21:41:53 · 681 阅读 · 0 评论 -
PAT乙级题目1002构思的改进和实践
对昨天的代码进行了更改,如下:#include#includevoid print (int a);int main (void){ short int start = 0, *p = &start; int count1 = 0, output = 0, count2 = 0; while ( scanf("%c",p++) && !isspace(*p) ) count1原创 2015-12-20 23:26:14 · 534 阅读 · 0 评论 -
C结构与其他数据形式学习心得
结构是C高级数据结构建立的基础结构并不是一个新的数据类型,而是一个数据类型的集合,结构型数据被创建时,编译器会自动为每个成员分配适当大小的储存空间。与之相对的,还有联合和枚举类型,联合类型是多基本类型,成员唯一;枚举类型是唯一基本类型,多成员。 结构的成员具有私有性,类比于代码块作用域,多个结构可以拥有相同名称的成员,与结构名称无关。访问结构的成员有两种办法,一是使用成员运算符”.”原创 2016-02-24 22:18:19 · 503 阅读 · 0 评论 -
C文件管理学习心得
通常来说,文件这个定义在计算机中指磁盘上一段命名的储存区,而实际上这些字节可能并不连续,这并不重要。在C中,一个程序对于硬盘上文件的直接操作仅包括读取和写入(或覆写),真正处理复杂问题的地方并不是硬盘而是缓冲区,即内存。C的程序在处理一个文件时,会先将其相应的内容复制到内存缓冲区,然后进行具体处理,完毕之后会将其重新放回硬盘的原位置,覆写原来的数据。所有的C程序都是基于这个思想来实现,因此C没有指原创 2016-02-24 17:07:23 · 1343 阅读 · 0 评论 -
C字符串函数和命令行参数的学习心得
1.字符串排序: 由于在学校已经学过了两种(冒泡和选择)排序方法,所以这一章学起来毫无压力,简而言之,就是使用排序算法对一个二维数组的第一维进行排序。由于字符串基于数组处理,所以对字符串进行排序实际上是对指向每个字符串的指针进行排序。2.命令行参数: 学了半个多学期的C今天终于知道main的参数到底是什么了。如先前所想的,函数的调用者必须向函数接口传递符合的参数,m原创 2016-02-03 22:50:30 · 1498 阅读 · 0 评论 -
C储存类,链接和内存管理学习总结和心得
C有5种储存类:自动,寄存器,具有外部链接的静态,具有内部链接的静态和具有空链接的静态。储存类 时期 作用域 链接 声明方式自动 自动 代码块 空 代码块内寄存器 自动 代码块 空 代码块内,使用关键字register原创 2016-02-12 23:48:20 · 542 阅读 · 0 评论 -
C字符串练习题心得
多次碰到一些比较让人感觉很无奈的事情,最普遍的就是斜杠和反斜杠的区别,经常由于斜杠的方向是反的而导致在给字符串结尾时输入错误,(应该是\0而不是/0)。但在后面的练习中找到了一个更靠谱的输入方法,即在输入****='\0'时直接用0代替'\0',原理是在ASCII中第0个字符代表的就是\0,所以使用0就不会发生输入错误的事情。 另外,发现char* .....和char *.......原创 2016-02-06 21:12:26 · 511 阅读 · 0 评论 -
学习字符串输入/输出(CPrimerPlus11.2&11.3)心得
C对字符串的常规处理也就只有借助一些标准的库函数了(string.h),所以这一章的内容很无聊,从头到尾比起教材目测更像一个函数说明书.........鉴于C对字符串的构思都是建立在数组的基础上的,所以输入一个字符串的第一步永远是分配合适的内存空间。否则结果一般都会像超出数组长度那一样发生一些非常搞笑的事情...........先写几个字符串的I/O函数声明:char * gets ( c原创 2016-01-29 23:51:20 · 613 阅读 · 0 评论 -
学习C字符串表示和字符串I/O(CprimerPlus11.1)的心得
简单的常识性的东西我就不写了,比如字符串末尾是/0啥的。。。。。 这里讲的比较多的字符串数组初始化的问题,后面字符串数组和字符指针的区别问题也由此引申而来。 自从C99有了VLA之后,声明数组可以使用变量长度了,带来的误解(我误解了)是“声明数组的时候可以使用未初始化的变量”,事实是“声明数组时必须使用已初始化的变量(最好是const)和数字常量”。摘抄一段原话:“数组初始化是从静态储原创 2016-01-29 00:08:53 · 505 阅读 · 0 评论 -
关于C中scanf函数的%c解释符的探究
发现了一个细节上的问题,一道课本上的题目,代码如下:#include#includeint main(void){ char a, b, c; int d; scanf("%c%c%c%d", &a, &b, &c, &d); printf("%d%c%c%c", d, a, b, c); system("pause"); return 0;}(stdlib.h和syste原创 2015-12-17 21:56:49 · 476 阅读 · 0 评论 -
对成为一个好的程序员的思考
一天没有敲代码,只是看看了看知乎,从一片文章里得到了一点启示http://zhuanlan.zhihu.com/e8-vm/20411804我的目标是什么?从入学时我就说:“我想去B站做一个码农,多苦多累都无所谓“。这个目标应该还能更精确一些现在我应该说:”我想去B站做一个后端开发工程师,同时也要对前端开发有一定的了解“。想成为一个好的程序员,那篇文章已经说的很清楚了,多看,多写,原创 2015-12-16 21:55:30 · 446 阅读 · 0 评论 -
对链表的简单认识和问题
由于时间原因(懒),今天我只是抄了一下课本上的链表实例然后理解了一下,代码如下://创建字符长链表并将其输出#include#includestruct string{ char ch; struct string *nextPtr;};struct string *creat (struct string *h);void print_string (struct string原创 2015-12-15 23:37:00 · 696 阅读 · 1 评论 -
C选择和冒泡排序程序心得
好的,今天C语言课为了应付期末考试教了选择和冒泡排序法,本着“直接抄现成代码P用没有”的观念我很决绝的没有抄老师给的代码,听完思路以后回来自己写了一遍。先说冒泡的代码吧//使用冒泡法对一个int数组进行排序#includevoid swap (int *a, int *b);int main (void){ int ar[5], time1 = 0, time2 = 0, num原创 2015-12-14 21:32:07 · 877 阅读 · 0 评论 -
对多维数组名、指向数组的指针和指针数组的理解
今天新开的博客,有点小激动。。。。。。听说要成为一个好的程序员必须要写博客,虽然不太明白为什么,但就当写日记好了。。。写之前先#define WORD '我的内心是崩溃的'这词目测在这里要用到太多次。。。。。Primer Plus的进度到了273页,指针和数组的后半部分。我尝试着去理解书上给我举出的每个例子。很不幸的,今晚状态有够差,一边发呆一边理解我现在晕晕乎乎的。多维数组和多重原创 2015-12-13 22:26:46 · 2035 阅读 · 1 评论 -
PAT乙级题目1002的构思和简单实践
PAT的乙级题目1002解决问题:1002. 写出这个数 (20)时间限制400 ms 内存限制65536 kB代码长度限制8000 B 判题程序Standard作者CHEN, Yue读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100。输出格式:在一行内输出n的各位数原创 2015-12-19 22:20:57 · 2560 阅读 · 0 评论