c语言学习笔记
你丫放开她
喜爱编程,懂点结构
展开
-
getchar()和EOF
作者:竹影清风 来源:http://www.cnblogs.com/cunlau/articles/3823660.html一、对getchar的两点总结:getchar是以行为单位进行存取的。 当调用getchar函数读取输入时,只有当输入字符为换行符’/n’或文件结束符EOF时,getchar才会停止执行,整个程序将会往下执行。并且,如果输入行是以EOF结束的(EOF之前不是换行符),则E转载 2017-07-12 16:10:56 · 307 阅读 · 0 评论 -
C语言几个小函数
*编写一个函数给一个变量赋值,如果赋值失败(值会依然留在缓冲区),丢弃该输入行的所有剩余内容。代码如下:int right_num(){ int number; while((scanf("%d", &number)) != 1) { while (getchar() != '\n') continue; printf翻译 2017-07-11 16:59:17 · 287 阅读 · 0 评论 -
关于getchar()输入字符后回车的几个例子
耐心看完这几个例子会很有收获例.1 .#include <stdio.h>int main(){ char c; int n = 0; while ((c=getchar())!='a') { printf("%c,%d",c, n); } return 0;}1. 输入: ssss回车 得到: ssss 光标处(等待输入) 其原创 2017-07-10 09:50:31 · 10203 阅读 · 3 评论 -
动态数据结构-动态建立链表
#include <stdio.h>#include <stdlib.h>struct weapon{ int price; itn atk; struct weapon * next;//定义一个struct weapong 类型的指针变量next,用来存放下一个节点的地址(指向下一个节点)。}struct weapon * create(){ struc翻译 2017-07-09 12:54:47 · 470 阅读 · 0 评论 -
共用体和结构体所占内存大小的计算方法二
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。 例一: #include <iostream> using namespace std; struct X { char a; int b; double c; }S1;转载 2017-07-08 19:44:17 · 2171 阅读 · 0 评论 -
C语言中用fseek将指针定位到文件头(SEEK_SET)时,指针是指向文件第一个字符还是在第一个
原地址转载 2017-07-30 10:36:12 · 11059 阅读 · 0 评论 -
字符串--用数组初始化和用指针初始化方法区别
const char * ptr1 = "fine.";const char ar[] = "fine.";以上的声明中,ptr1和ar都是该字符串的地址,但这两种形式并不完全相同。初始化数组:字符串储存在静态存储区。但是,程序在开始运行时才会为该数组分配内存(以上面的声明为例,数组形式ar[ ]在计算机的内存中分配为一个内含6个元素的数组(每一个元素对应一个字符,还加上一个末尾的空字符‘\0’)原创 2017-07-20 22:07:08 · 2834 阅读 · 0 评论 -
字符串--用数组初始化和用指针初始化方法
1、字符串数组初始化1)用足够的空间的数组储存字母串const char example[40] = "So big it is.";const表示不会更改这个字母串还有这种:const char example[40] = {'S','o',' ','b','i','g',' ','i','t',' ','i','s','.','\0'};注意最后的空字符’\0’。没有这个空字符,这就不是一个字原创 2017-07-20 21:52:46 · 1410 阅读 · 0 评论 -
typedef和define作用域的区别
typedef:如果放在所有函数之外,它的作用域就是从它定义开始直到文件尾; 如果放在某个函数内,定义域就是从定义开始直到该函数结尾;#define:不管是在某个函数内,还是在所有函数之外,作用域都是从定义开始直到整个文件结尾。 如:typedef …//此处开始到文件结尾#define …//此处开始到文件结尾int negate(int num){ typedef …//此处开始转载 2017-07-07 16:33:18 · 267 阅读 · 0 评论 -
关于const的三类指针
1.指向const的指针double rates[5] = {88.99, 100.12, 59.45, 183.11, 340.5};const double * pd = rates;要点需知:指向const的指针pd,不能通过使用指针pd来更改它所指向的值,但是可以更改pd的指向。示例如下:*pd = 29.89;//不允许(通过指针pd改变所指向的值了)pd[2] = 222.22;//原创 2017-07-17 17:06:32 · 422 阅读 · 0 评论 -
c语言#include后的尖括号和双引号有什么区别?
1、使用尖括号的话,编译时会先在系统include目录里搜索,如果找不到才会在源代码所在目录搜索。2、使用双引号则相反,会先在源代码目录里搜索,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件。这就意味着,当系统里(如/usr/include/里)有一个叫做math.h的头文件,而你的源代码目录里也有一个你自己写的math.h头文件,那么使用尖括号时用的就是系统里的;而使用 双转载 2017-07-14 17:06:15 · 4274 阅读 · 0 评论 -
共用体和结构体所占内存大小的计算方法一
共同体作用:让几个不同类型的变量共享同一个内存地址。共用体所占内存大小:共用体所占内存的大小即公用体重长度最大元素所占用的字节数。方法一:结构体的内存大小=最后一个成员的偏移量 + 最后一个成员的大小 + 末尾的填充字节数偏移量:某个成员的实际地址和这个结构体首地址之间的距离。例.1:struct data{ char a; int b; double c;} 比如原创 2017-07-08 17:09:36 · 8632 阅读 · 1 评论