
c
文章平均质量分 59
lyl0530
快马加鞭,嘚嘚嘚...
展开
-
指针和数组
int main(){ int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1);//&a是数组的首地址, &a+1,取数组a 的首地址,该地址的值加上sizeof(a) 的值,即ptr指向a[5] char *p_char = (char*)(&a+1); printf("%d,%d", *(a+1), *(ptr-1...原创 2018-06-24 20:45:14 · 313 阅读 · 0 评论 -
ASCII与unicode的区别
一、ASCII码与unicode码1. ASCII:8bits的英文编码,实际使用低7位,127个字符。32(0x20)为空格,之前是控制字符,之后是有效字符。2. Unicode:使用两字节对全球字符进行统一编码,有65536个编码,UCS-2为两字节版本(2^16 =65536)。2.1 Unicode little endian:将Unicode中表示同一字符的两个字节顺序反过来...原创 2018-07-17 19:28:00 · 13241 阅读 · 0 评论 -
ASCII码表
原创 2018-06-25 21:17:31 · 391 阅读 · 0 评论 -
字符数组和字符串浅析
1、字符数组的定义与初始化char str[10]={ 'I',' ','a','m',' ',‘h','a','p','p','y'};char str[10]={ 'I',' ','a','m'};//其余的元素自动定为空字符(即 '\0' )2、字符数组与字符串在c语言中,将字符串作为字符数组来处理。(c++中不是)字符串只能用于初始化字符数组,不可对字符数组赋值。字符串常量如"C Prog...原创 2018-06-25 21:10:00 · 424 阅读 · 1 评论 -
for循环执行顺序
for(1; 2; 3){ 4;}for循环执行顺序:1, 2, 4, 3, 2, 4, 3原创 2018-06-25 21:02:14 · 1514 阅读 · 1 评论 -
swap函数
void swap(int* p_a, int* p_b) //p_a、p_b是两个指针,其值就是&a、&b,且p_a、p_b指向a、b。只是出了该函数,两个形参会销亡。{ //该函数只是对形参p_a、p_b,即对指向a、b的指针进行了交换操作,若使用变量ab,此时二者的值没有改变。 int *p_tem; //若把此时的两个形参指针[&a、&b...原创 2018-06-25 21:00:27 · 383 阅读 · 0 评论 -
PU8类型数组和U8类型数组的区别
把二级指针的双字节内容转为单字节,会出现死机现象,原因就是使用了空指针接收内容。int i;PU8 subMenuDataPtrs[MAX_SUB_MENUS]; //subMenuDataPtrs是指针数组,二级指针,char **类型的//PU8 str_temp[200];//声明了200个U8类型的指针,共800个字节,但每个指针并未申请空间U8 str_temp[200] = {0...原创 2018-06-24 22:01:39 · 2652 阅读 · 0 评论 -
获取两个逗号之间的内容
/* 从字符串my_date("a1, b22, c333, d4444, e55555, f6666")中, 获取第num到第(num+1)个逗号之间的内容, 该内容的首地址由参数pp_begin带出,长度由参数len带出 */ void smn_get_date_from_douhao(char* my_date, int num, char**...原创 2018-06-24 21:54:13 · 3545 阅读 · 0 评论 -
指针函数、函数指针、数组指针、指针数组等区分规则
从右到左,由近及远,括号优先float (**def)[10];//def为二级指针,指向一个有10个元素的数组,每个元素都是float类型double* (*gh)[10];//gh是指针,指向一个有10个元素的数组[数组指针],每一个元素为double*类型double (*f[10])();//f是数组,该数组有10个元素,每个元素都是指针[指针数组],指向一个函数,无参返回double的参...原创 2018-06-24 21:51:44 · 174 阅读 · 0 评论 -
二维数组
//1 二维数组初始化:int arr[][2] = { {0,1}, //若某一个单元有小括号,则该单元内的元素个数不能超过列数限制,否则会报错。 {2}, //arr[1][1]=0;//该单元内的元素个数小于列数,则剩余的数字会自动初始化为0 3,4,5,6 //初始化时,可省略内部{},只保留最外层的{}.};//2 二维数组的使用:arr[0][2]找第二行的第一列,即arr[...原创 2018-06-24 21:33:03 · 395 阅读 · 0 评论 -
排除0值及排序
void delete_zero_data(int* p, int data_size) { int i, j, num_of_zero, num_of_not_zero; int *p_zero_f2r = (int*)malloc(data_size * sizeof(int)); int *p_not_zero_r2f = (i...原创 2018-06-24 21:31:01 · 1143 阅读 · 0 评论 -
自己实现strlen
函数原型:int strlen (const char*); int my_str_len(const char* p_char) { int num = 0; if (NULL == p_char) { return 0; } while(*p_char) { ...原创 2018-06-24 21:07:27 · 275 阅读 · 0 评论 -
自己实现strcat
函数原型:char* strcat (char*, const char*); char *my_str_cat(char* p_des, const char* p_src) { if (NULL == p_des || NULL == p_src) { return p_des; } char...原创 2018-06-24 21:04:44 · 927 阅读 · 0 评论 -
自己实现strcpy
函数原型:char* strcpy(char*, const char*)char *my_str_cpy(char* p_output, const char* p_input){ //in out都不为空 if (NULL == p_output || NULL == p_input) { return p_output...原创 2018-06-24 21:01:33 · 1410 阅读 · 0 评论 -
自己实现strcmp
函数原型:int strcmp(const char *dest, const char *source) ;返回值:返回整数值,如果dest > source,则返回值大于0,如果dest = source,则返回值等于0,如果dest < source ,则返回值小于0。字符大小是按照字符的字典序列进行排列的。参数说明:都是以'\0'为结束符的字符串 int strcmp (...原创 2018-06-24 20:53:38 · 1943 阅读 · 0 评论 -
全局变量、静态全局变量、局部变量、静态局部变量、静态函数
1.所在内存区域全局变量、static全局变量、static局部变量都在全局区(静态区),而局部变量在栈区。2.生命周期全局变量、static全局变量、static局部变量都存在于程序的整个生命周期中;局部变量存在于函数执行期间,函数结束,变量消亡,其内存被回收。3.作用域全局变量具有全局作用域,在整个源程序内可用。static全局变量具有文件作用域,只在当前源文件内可用。static局...原创 2018-09-06 16:54:21 · 896 阅读 · 0 评论