C和指针之学习笔记(1)】的更多相关文章

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容: 指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区.让我们分别说明.  指针的类型       从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型.这是指针本身所具有的类型.让我们看看例一中各个指针的类型: int*ptr; // 指针的类型是int* char*ptr; // 指针的类型是char* int**…
1.程序的要求:对用户指定的英文文本文件(包括标准输入),将英文单词按照字母顺序输出到用户指定的文本文件中(包括标准输出),并且在各单词后面显示单词的出现次数. 2.模块设计: 主要分为:1.从输入流获取单词部分 2.管理单词的部分 3.主程序部分:统一管理以上两部分 3.代码 第1部分:get_word.c 主要是利用isalnum()函数判断单词的开始与结束 /*get_word.c*/#include<stdio.h> #include<stdlib.h> #include&…
数组是一个什么玩意: 数组和指针我的理解,有同样之处也有不同之处.因有同样之处,因此一些资料上说,数组和指针本质是同样的.因有不同之处,因此也有一些资料上说,数组和指针是不一样的. 同样之处: 数组名字和指针名字都代表了一个地址. 如:int num[10];num是数组名.函数开辟了一个存储十个整数类型的空间,而num是他们的首地址. int *p; p=(int *)malloc(10*sizeof(int));类似的,p也指向了首地址. 不同之处是,num[10]中的空间位置是在栈中,而…
第17章 经典数据结构类型 堆栈 堆栈接口提供三种基本的操作:push.pop 和 top. Push:把一个新值压入到堆栈的顶部. Pop: 只把顶部元素从堆栈中移除,它并不返回这个值. Top: 返回顶部元素的值,但它并不把顶部元素从堆栈中移除.   (1)堆栈接口 #ifndef STACK_H #define STACK_H #include<stdlib.h> #define STACK_TYPE int //push 把一个新值压入到堆栈中,它的参数是需要被压入的值 void pu…
第10章 使用结构和指针 单链表 typedef struct NODE { struct NODE *link; int value; } Node; 插入到一个有序单链表: #include<stdio.h> #include<stdlib.h> #include "sll_node.h" #define FALSE 0 #define TRUE 1 int sll_insert( Node **linkp, int new_value)  //指针的指针…
第9章 字符串 字符串的输入与输出 int  ch;  char strings[80];  FILE *input; (1)scanf(“%c”,&ch);   printf(“%c \n”,ch);    (输入字符串时自动添加’\0’) (2)ch = getchar();   putchar(ch); (3)gets( strings );    puts( strings );      (输入字符串时自动添加’\0’) (4)fgets( strings, 80, stdin);  …
第8章 数组 1.数组与指针 数组名是一个个元素的地址. int  a[10];  int  b[10];  int  *c; (1) c = & a[0]; &a[0]表示一个指向数组第1个元素的指针. (2) c=a; 与 c = & a[0]; 等价 (3) b = a; 非法,不能使用赋值符把一个数组的所有元素复制到另一个数组,必须使用一个循环,每次复制一个元素. (4) a = c; 非法,a是指针常量,而c是指针变量. 2. 下标引用和间接访问完全相同. array[s…
第6章 指针 1.在一组字符串中查找字符: #include<stdio.h> #include<assert.h> #include<stdlib.h> #define TRUE 1 #define FALSE 0 int find_char(char **strings , int value) { //  assert(strings != NULL); while(*strings !=NULL){ while(**strings!='\0'){ if(*(*s…
第1章 1.输入字符串 while((ch=getchar())!=EOF  &&  ch!=’\n’) ; ch=getchar() while(ch!=EOF  &&  ch!=’\n’) ch=getchar();   这个样子冗余,可读性差 2.输入字符串,没有长度限制 int  at_beginning=1;       //用at_beginning作为标志,为1时行数line计数 while((ch=getchar())!=EOF ) { if (at_beg…
成员数组和指针是我们c语言中一个非常重要的知识点,记得以前在大学时老师一直要我们做这类的练习了,但是最的还是忘记了,今天来恶补一下.     单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如下.我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章. 为了方便你把代码copy过去编译和调试,我把代码列在下面:  代码如下 复制代码 #incl…