C语言学习
最开始的C语言知识的学习。
iotflh
不忘初心,方得始终
初心易得,始终难守
展开
-
大三上第一次作业--12个Linux基本问题的讨论
1.(1)计算机程序是指一组指示计算机执行动作或作出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。 (2)编程语言是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。 (3)编程语言用来用人能看懂的语言操纵计算机实现所需要的功能。 (4)C++、C、VB、JAVA C:面向过程、简洁、运算符丰富、数据结构丰富、结构式语言、语法限制比原创 2017-11-17 18:24:40 · 197 阅读 · 0 评论 -
Linux网络编程:TCP网络编程构架
一、字节序1、不同类型的CPU对大于一个字节的变量的字节存储顺序可能不同。有的系统高位在前,低位在后,称为小端字节序;有的系统低位在前,高位在后,称为大端字节序。而网络传输的数据顺序一定要统一的。所以当内部字节存储顺序和网络字节顺序不同时,就一定要进行转换。2、如何判断电脑的字节序。网络字节序采用大端字节顺序。3、字节序转换函数。#include uint32_t h原创 2018-01-27 23:59:11 · 663 阅读 · 0 评论 -
Ncurse编程:屏幕输出和窗口机制
一、编译包含NCURSES函数的程序#include<ncurses.h>编译和连接命令:gcc <程序文件> -lncurses二、"你好!"程序#include<ncurses.h>//包含stdio.h#include <locale.h> //中文库int main(){initsrc(); //初始化,进入...原创 2019-01-15 09:21:39 · 757 阅读 · 0 评论 -
Linux系统(一)——基础知识、常用命令
准备考研,沉寂了一年时间,重新出发。先做个规划把,首先以一天两个大块的进度把Linux C的知识点重新梳理一遍,然后网络聊天室的思路理一理,在过完C++的知识后,结合QT、Mysql用C++把聊天室重写一遍。今天,把Linux的基础知识,shell命令,vim、gcc、makefile等Linux系统下常用开发工具温习一遍。一、Linux基础知识 Linux 从...原创 2019-01-15 17:21:48 · 587 阅读 · 1 评论 -
蓝桥杯:8届10题k倍区间
标题: k倍区间给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i 你能求出数列中总共有多少个K倍区间吗? 输入-----第一行包含两个整数N和K。(1 以下N行每行包含一个整数Ai。(1 输出-----输出一个整数,代表K倍区间的数目。 例如原创 2018-02-04 13:42:10 · 295 阅读 · 0 评论 -
C小知识点:宏定义实现数字参数交换
#include #define swap(a,b) {int t; t=a; a=b; b=t; }int main() { int a,b; scanf("%d%d",&a,&b); swap(a,b); printf("%d %d\n",a,b); return 0;}这个宏定义可以实现a和b交换原创 2018-01-26 16:28:07 · 664 阅读 · 0 评论 -
C小知识点:const
const是常量修饰符,定义一个不可改变的变量。1:const int i = 10; --> i的值不可改变,若i = 11;则报错2:const int *j = (int*)&i; 和 int const *j = (int*)&i; - --> j指向的变量的内容不可变,若 *j = 20; 则报错3:int转载 2018-01-26 15:35:56 · 158 阅读 · 0 评论 -
C小知识点 : 无符号数与有符号数运算
例 : #include<stdio.h> int main() { unsigned int a=6; int b = - 20; printf("%d\n", a + b); (a + b) > 6 ? puts(" > 6") : puts(" <= 6"); return 0; }结果是:-14 >6原因 : 有原创 2017-11-18 11:49:26 · 1059 阅读 · 0 评论 -
C“段错误” : scanf(struct1->struct2->num)报段错误
typedef struct data{char num[5];char name[20];char phonenum[14];}*DataType;typedef struct node{DataType data;struct node *next;}*ListNode;ListNode newnode = (ListNode)mallo原创 2017-08-04 16:28:36 · 535 阅读 · 0 评论 -
C“段错误” : 快速定位“段错误”位置
1、 编译时gcc 1.c -g ,后边加上-g在运行时产生段错误时会自动生成core.xxxx的文件 (若没有产生这个文件,则在命令行输入ulimit -c umlimited,重新编译运行)2、用gdb调试 gdb a.out core.xxxx3、输入where查看详细信息,既可以定位段错误的位置原创 2017-08-04 20:23:25 · 2240 阅读 · 0 评论 -
C小知识点 : 数组和指针遍历的效率
#include #include int main(){ clock_t start; clock_t end; int b[100000]; int a[100000]; int *pa; int *pb; int k; int i; int * pend = &a[20000]; start = clock(); for (k = 0; k <20000原创 2017-12-02 11:30:39 · 2162 阅读 · 0 评论 -
C小知识点:动态链表与静态链表
一. 静态链表在某些语言中指针是不被支持的,只能使用数组来模拟线性链表的结构.在数组中每个元素不但保存了当前元素的值,还保存了一个”伪指针域”,一般是int类型,用于指向下一个元素在数组中的下标.#define MAXSIZE 100; typedef struct{ ElemType data; int cu原创 2018-01-26 14:31:37 · 321 阅读 · 0 评论 -
C小知识点:野指针的成因及其避免方法
野指针: 是指内存被释放的内存或者没有访问权限的内存。成因:(1)指针定义后没有初始化。 (2) 指针free或者delete以后,没有指向NULL。 (3)指针操作超过了变量的作用范围。避免方法:(1)对指针进行初始化 ①将指针初始化为NULL。 char * p = NULL;转载 2018-01-24 16:08:08 · 407 阅读 · 0 评论 -
C小知识点:分配内存的三种方式和常见的内存错误
分配内存的方式:一:从全局存储区域分配:这时内存在程序编译阶段就已经分配好,该内存在程序运行的整个周期都有效,如:全局变量、static静态变量。二:从栈区分配:在执行函数的时候,函数中的局部变量的存储单元都可以从栈中分配,函数执行结束后这些存储单元都会被自动释放,实现从栈中分配存储单元运算操作内置于处理器的指令集中,效率很高 但是分配的内存容量有限。三:从堆中分配转载 2018-01-24 15:56:47 · 245 阅读 · 0 评论 -
C小知识点:库函数调用和系统调用的区别
库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。 函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。你要确保弄懂“trap(自陷)”这个关键字的含义。系统调用是在操作系统内核发现一个“trap”或中断后进行的(其中系统调用是软中断)。 函数库调用 VS 系统调用函数库调用系统调用转载 2018-01-24 15:14:55 · 1113 阅读 · 0 评论 -
C小知识点:C语言中不同类型数据所占字节数汇总
char:1个字节 char*:2个字节 short int:2个字节 int:2个字节 unsigned int:2个字节 long:4个字节 long long:8个字节 unsigned long:4个字节 float:4个字节 d转载 2018-01-24 14:54:07 · 317 阅读 · 0 评论 -
C小知识:数组和指针的区别
数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。转载 2018-01-26 15:12:46 · 108 阅读 · 0 评论 -
C小知识点:sizeof和strlen区别与联系
strlen: string.h库中的函数,用于统计字符串中字节个数,到\0为止。 sizeof: C语言所带的函数库中的运算符。用于计算字节数。一般统计对象所占的单元(字节)的个数。需要注意的是,sizeof括号中只能运算,不能计算。sizeof用法注意: 1、用于测定类型所占存储单元时,类型必须用于sizeof()类型。 2、用于数组时,表示数组所占的存储转载 2018-01-24 15:36:06 · 144 阅读 · 0 评论