
C语言杂记
Anhongzhan
心有惊雷而面如平湖者,可拜上将军!
展开
-
C语言杂记 0x05
结构体struct complex_struct{ double x,y;};//注意分号结构体初始化(1)struct complex_struct{ double x,y;}z1,z2;//注意分号结构体初始化(2)struct complex_struct{ double x,y;};struct complex_struct...原创 2018-07-16 11:01:06 · 351 阅读 · 0 评论 -
C语言杂记 0x0A
核心已转储今天写一个字符串反转练练手,涉及到手动输入字符串时出现了一些问题char s[];scanf("%s",s);采用字符数组的方式输入的时候完全没有问题,但是采用下面的方式的时候就会报错核心以转储char *s;scanf("%s",s);什么是核心已转储呢?通俗的理解就是访问了不能访问的内容,如下:访问不存在的内存地址访问系统保护的内存地址访问只读的内存地址...原创 2018-10-06 20:00:06 · 992 阅读 · 0 评论 -
C语言杂记 0x09
linux 左右按键输入问题linux中使用C语言的get()和put()等等函数的时候,当我们输入上下左右四个键位的时候会出现一下的情况hel^[[D^[[C使用箭头键不会前后移动输入的光标,而是会产生像 ^[[D 或 ^[[C 这种奇怪的字符。很明显这不是我们想要的结果。而在 Windows 上则不会有这个现象。在 Mac 和 Linux 上,我们需要用到 editline...原创 2018-08-07 19:47:29 · 815 阅读 · 0 评论 -
C语言杂记 0x04
函数(function)函数的返回值可以理解为:定义一个和返回值类型相同的变量,并且用return后面的语句进行初始化函数分返回值不是左值,或者说函数表达式不能作为左值,因此下面的表达式是违法的 is_even(20) = 1;循环和递归递归能解决的问题循环也能解决,只是解决的思路不一样对于递归来说,分配和释放了好多地址空间,所有变量都是在初始化的时候被赋值,然后就没再发生过...原创 2018-07-15 13:49:06 · 790 阅读 · 0 评论 -
C语言杂记 0x03
C语言运算符优先级把语句封装成函数的基本步骤是: 把语句放到函数体中,把变量改成函数的参数 if else对应使用switch的注意事项原创 2018-07-13 23:21:51 · 894 阅读 · 0 评论 -
C语言杂记 0x02
形参和实参int getTime(int hour,int minute);getTime(20,30);C语言的这种传递参数的方法叫做call by value 在调用参数时,每个参数都需要得到一个值,函数定义中有多少形式参数就要传递多少值,每个参数的类型必须对应上全局变量、局部变量和作用域#include <stdio.h>int hour = 23,...原创 2018-07-13 22:47:46 · 1769 阅读 · 0 评论 -
C语言杂记 0x01
字符类型与字符编码ASCII码中 字符a是97,字符b是98,计算 ‘a’+1这个表达式,应该按照ASCII码把’a’当做证书值97,然后加1,得到98,然后printf把98这个整数值当做ASCII码来打印,打印出相应字符b我们称整型为”int”型,现在我们知道”char”类型本质上也是整数,只不过比”int”类型的表示范围小,所以以后我们把char型和int型统称为整数类型(Inte...原创 2018-07-13 17:06:52 · 1608 阅读 · 0 评论 -
C语言杂记 0x08
栈与队列 数据结构的概念 数据结构(Data Structure)是数据的组织方式。程序中用到的数据都不是独立的,而是相互联系的,根据访问的需求不同,同样的数据可以有多种不同的组织方式。 堆栈是一组元素的集合,类似于数组,数组可以按下标随机访问,这次访问a[5]下次访问a[1],但是堆栈的访问被限制在push()和pop()两种方式 push()是指向栈的顶端压入元素(Element)...原创 2018-07-16 20:35:22 · 1384 阅读 · 0 评论 -
C语言杂记 0x07
indent工具自动统一代码风格indent -gnu style.c -o style_gnu.c //变成gnu风格indent -kr -i8 style.c -o style_kernel.c //变成内核风格gdb...原创 2018-07-16 15:50:31 · 624 阅读 · 0 评论 -
C语言杂记 0x06
数组数组初始化int a[5] = {[2] = 3};注意:数组和结构体不同,不能相互赋值int a[5] = {1,2,};int b[5] = a;//错误的数组作为函数的参数时int function(int array[5]);查看编译预处理之后、预处理之前的代码 gcc -E main.c字符串字符串就相当于字符数组,所有的字符串最后...原创 2018-07-16 11:43:31 · 519 阅读 · 0 评论 -
C语言杂记 0x0B
首先看两个例子一、二、这两个例子里面不同的地方就是s的不同,C语言程序在执行的时候内存分配有这样的规则局部变量在栈中自动生成内存,比如上面所说的s[]就是在栈中生成内存而s*指向的内存在常量区,就类似于我们在所有程序之前声明char s[100]一样栈由编译器自动生成释放,而常量区的内存是由操作系统决定的回到咱们之前说的那个,两份代码返回的s都指向第一个字母的内存地址,第一个...原创 2018-11-19 01:47:19 · 1948 阅读 · 0 评论