C语言

C语言基础-结构体和其他数据结构

补充知识点:条件编译根据宏是否定义#ifdef<macro>//...#else//...#endif//Demo:#define_DEBUG_intmain(intargc,constchar*argv[]){#ifdef_DEBUG_printf("DEBUG");#elseprintf("NODEBU...

C语言基础-指针

1.初级指针内存和地址   硬件存储中有一个值得注意的地方是边界对齐。在要求边界对齐的机器上,整型值存储的起始位置只能是特定的字节,通常是2或4的倍数。对于程序员还要知道的是:    (1)内存中每个位置由一个独一无二的地址标识;    (2)内存中每个位置都包含一个值。  下面的例子显示了内存中的5个字的内...
代码星球·2020-08-07

C语言基础-字符串函数

string.h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。 字符串长度函数--strlensize_tstrlen(constchar*str)格式:strlen(字符串数组)功能:计算字符串长度返回值:返回字符串实际长度,不包括''在内其他:对于8、16进制数看做对应ASCII码...
代码星球·2020-08-07

C语言基础-数组

数组初体验程序中也需要容器,只不过该容器有点特殊,它在程序中是一块连续的,大小固定并且里面的数据类型一致的内存空间,它还有个好听的名字叫数组。我们来看一下如何声明一个数组:数据类型数组名称[长度];数组只声明也不行啊,看一下数组是如何初始化的。说到初始化,C语言中的数组初始化是有三种形式的,分别是:数据类型数组名称[长...
代码星球·2020-08-07

C语言基础-函数

自创函数C语言提供了大量的库函数:比如 stdio.h 提供输出函数自定义函数的一般形式:   注意:[] 包含的内容可以省略,数据类型说明省略,默认是 int 类型函数;参数省略表示该函数是无参函数,参数不省略表示该函数是有参函数;函数名...
代码星球·2020-08-07

C语言基础-循环、分支、跳转

循环结构之while循环反复不停的执行某个动作就是江湖人称的循环 。C语言中有三种循环结构,先看一下C语言while循环的结构  其中表达式表示循环条件,执行代码块为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体代码块。while语句中的表达式一般是关系表达...

C语言基础-运算符、表达式、语句

运算符号C语言中运算符:※算术运算符※赋值运算符※关系运算符※逻辑运算符※三目运算符 算术运算符c语言基本运算符:  除法运算中注意:如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如 8/3=2;而两数中有一个为小数,结果则为小数,如:9.0/2=4.500000。...

C语言基础-字符串格式化的输入输出

格式化输出语句格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。其格式为:printf("输出格式符",输出项);注意:格式符的个数要与变量、常量或者表达式的个数一一对应    格式化控制串:包含两种信息%[修饰符]格式字符,用于...

C语言常用的基础库

首先来看几个问题:1. #include<>和#include“”的区别:    <>:引用的是编辑器的类库路径里面的头文件   "":引用的是个人程序目录下的相对路径中的头文件 &...

C语言编译器不检查数组下标越界

这两天被人问了一个问题说假如C/C++访问下表越界的数组元素会报错么,于是充满好奇心的我动手试了一下,WTF,果然没有报错,但是会给程序带来莫名其妙的结果(比如十次的循环但是变成了死循环,但八次却可以)例:1#include<stdio.h>2#include<stdlib.h>34//intA...

C语言中static的作用及C语言中使用静态函数有何好处

转自:http://www.jb51.net/article/74830.htm 在C语言中,static的作用有三条:一是隐藏功能,二是保持持久性功能,三是默认初始化为0。 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条,分别是:一是隐藏功能,对于static修饰的函数...

C语言字节对齐问题详解

转自:https://www.cnblogs.com/clover-toeic/p/3853132.html    考虑下面的结构体定义:1typedefstruct{2charc1;3shorts;4charc2;5inti;6}T_FOO;   ...

C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理

C语言中,数组初始化的方式主要有三种:1、声明时,使用{0}初始化;2、使用memset;3、用for循环赋值。 那么,这三种方法的原理以及效率如何呢?请看下面的测试代码: [cpp] viewplain copy #define ARRAY_SIZE_MAX...

C语言指针加1问题以及字节对齐问题

今天早上自己写了一段代码,然后测试的时候发现结果总是和预期的不一样,而且偏差的有点离谱,冥思苦想了将近五个小时,最后在我要开始怀疑人生的时候,发现原来是自己犯了一个极其低级但又容易被忽略的问题。好吧,我承认我有点丢程序员的人了。废话不多说,直接开始用例子来说明吧:我的代码里有两个结构体,假设为结构体Head和结构体Da...

C语言不定参数

最近,遇到一个c语言的不定参数问题。其实,对于c语言的不定参数问题,只需要三个函数就可以搞定了。这三个函数的头文件是<stdarg.h>,其实下面的三个函数都是一个宏定义(macro)。   这三个函数是:   voidva_start(va_li...
代码星球·2020-08-05