C-数组-结构体
ZWFGOGO
这个作者很懒,什么都没留下…
展开
-
在结构体最后定义一个长度为0的字符数组(技巧)
在结构体中定义零长数组的巧妙使用转载 2016-05-11 20:10:44 · 896 阅读 · 0 评论 -
32位平台代码向64位平台移植
1背景描述 从苹果A7处理器开始,就支持着两种不同的指令集:第一种为原有处理器所支持的32-bit ARM指令集,第二种为崭新的64-bit ARM体系结构。这种64-bit体系结构拥有更大的地址空间,最大支持16GB内存,同时它一次性可提取64位数据,比32-bit体系提高了一倍。现如今,苹果的LLVM编译器已经能够充分支持64-bit指令集。 正如苹果A7处理器一样,支持6转载 2017-12-05 12:50:30 · 719 阅读 · 0 评论 -
字符串数组初始化相关问题总结
C字符串数组初始化相关问题总结在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:(1) char str[10]="";(2) char str[10]={'\0'};(3) char str[10]; str[0]='\0';第(1)(2)种方式是将str数组的所有元素都初始化为'\0',而第(3)种方式是只将str数组转载 2017-12-05 20:58:25 · 1414 阅读 · 0 评论 -
字符串数组初始化相关问题总结
C字符串数组初始化相关问题总结在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:(1) char str[10]="";(2) char str[10]={'\0'};(3) char str[10]; str[0]='\0';第(1)(2)种方式是将str数组的所有元素都初始化为'\0',而第(3)种方式是只将str数组转载 2017-12-05 21:04:00 · 1119 阅读 · 0 评论 -
C语言字符数组的初始化
1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。[cpp] view plain copychar str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'}; 即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数转载 2017-12-05 21:49:27 · 627 阅读 · 0 评论 -
从cpu和内存来理解为什么数组比链表查询快
一个常见的编程问题: 遍历同样大小的数组和链表, 哪个比较快? 如果按照大学教科书上的算法分析方法,你会得出结论,这2者一样快, 因为时间复杂度都是 O(n)。 但是在实践中, 这2者却有极大的差异。 通过下面的分析你会发现, 其实数组比链表要快很多。 首先介绍一个概念:memory hierarchy (存储层次结构),电脑中存在多种不同的存储器,如下表CPU 寄存器 – immediate...转载 2018-04-24 10:55:47 · 559 阅读 · 0 评论 -
剑指Offer--题集目录索引
转自:https://blog.csdn.net/gatieme/article/details/51916802牛客OJ九度OJCSDN题解GitHub代码牛客剑指Offer题目列表九度OJ剑指Offer题目列表剑指OfferCodingInterviews–剑指Offer–名企面试官精讲典型编程题牛客OJ九度OJCSDN题解GitHub代码003–二维数组中的查找1384-二维数组中的查找剑指...转载 2018-04-20 17:46:58 · 294 阅读 · 0 评论 -
64位系统代码移植面临的20个问题(一)
64位系统代码移植面临的20个问题(一)原文地址:http://www.viva64.com/en/a/0004/摘要当从32位平台向64位平台进行代码移植的时候,程序发生错误是可以被观察到(observed)的。文章中给出了错误代码示例以及纠正的方法。并且列出了诊断错误的代码分析方法。这篇文章包含了各种64位错误的例子。但是,自从我们开始写这边文章后,我们已经转载 2017-12-05 12:48:46 · 608 阅读 · 0 评论 -
轻松记住大端小端的含义(附对大端和小端的解释)
或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰。如果你和以前的笔者一样,有过这种不快的经历,那么这篇文章希望能帮你彻底解决这个苦转载 2017-12-05 12:27:03 · 785 阅读 · 0 评论 -
inline函数的一些总结
inline函数的一些总结 我们看下面的函数,函数体中只有一行语句: double Average(double total, int number){ return total/number; } 定义这么简单的函数有必要吗?实际上,它还是有一些优点的:第一,它使程序更可读;第二,它使这段代码可以重复使用。但是,它也有缺点:当它转载 2017-06-21 20:34:38 · 389 阅读 · 0 评论 -
结构体与位域的对齐
C结构体和C++中的类极为相似 它也可以有构造和析构函数以及其他成员函数 成员函数也通过一个隐含的this指针来操作类成员 它们之间唯一的区别就是默认的成员访问权限 类是私有 结构体是公有 以下对结构体的对齐操作等 大多数也对C++类适用 结构体的对齐方式; 1.对于结构体中的成员 每一个成员的地址必须是该成员类型大小的整数倍 如转载 2017-07-12 17:55:13 · 382 阅读 · 0 评论 -
C语言函数指针基础
本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础。如果你不讨厌事无巨细,请尽情阅读吧。函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻。在最后,本文给出一种简单的方式来看待函数指针,让你对其用法有一个更清晰的理解。 函数指针和一个简单的函转载 2017-10-03 22:56:19 · 235 阅读 · 0 评论 -
编写安全无错C代码
1、不要用memcmp比较结构体例如定义如下结构体:typedef struct test{short m1;int m2;}TEST;int main(){ TEST a = {.m1 = 0, .m2 = 0,};TEST b;memset(&b, 0 , sizeof(TEST));if (0 == memcm原创 2017-11-29 21:50:51 · 269 阅读 · 0 评论 -
详解大端模式和小端模式(转)
一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令所有的子民吃鸡蛋的时候,必转载 2017-12-09 20:13:26 · 370 阅读 · 0 评论 -
大小端模式,栈的生长方向和内存的存放方向
[cpp] view plain copy /* 栈的生长方向和内存的存放方向 栈的开口向下,高地址在上,低地址在下 内存的存放方向:自下向上 大端模式下:栈的高地址对应数据的低位 小端模式下:栈的高地址对应于数据的高位 */ #define _CRT_SECURE_NO_WARNINGS #include #include #include //1. 栈的生长转载 2017-12-05 11:37:47 · 652 阅读 · 1 评论 -
C语言中内存分配
在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。第2节主要介绍C语言中内存分配及释放函数、函数的功能,以及如何调用这些函数申请转载 2017-12-02 20:03:25 · 297 阅读 · 0 评论 -
C语言字符串处理函数
函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(s转载 2017-12-02 23:16:45 · 203 阅读 · 0 评论 -
C语言字符串操作总结大全
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长转载 2017-12-02 23:54:55 · 326 阅读 · 0 评论 -
ssprintf sscanf atoi itoa 整数字符串转换
1、前言 我们经常涉及到数字与字符串之间的转换,例如将32位无符号整数的ip地址转换为点分十进制的ip地址字符串,或者反过来。从给定的字符串中提取相关内容,例如给定一个地址:http://www.bokeyuan.cn:2345,我们要从地址中提出协议,主机地址和端口号。之前对字符串和数字之间的关系不是很熟悉,工作中经常涉及到这个,如是好好总结一下。C语言提供了一些列的格式化输入输出转载 2017-12-03 00:54:05 · 344 阅读 · 0 评论 -
宏的本质以及宏(包括函数式宏) 没有返回值概念
由什么问题而引申的:字符串“XX\\ENM\\USB”中的XX是会变的,想写一个宏定义来表示该字符串。首先,想到用#define STR(x) x"\\ENM\\USB”形式,发现不行而引申出下文第一点。接着,想宏定义是否有返回值来表示而引申出下文第二点。最后,想到用#define STR(x) strcat(x,"\\ENM\\USB”)形式(这里,宏仍然只是源代码文本替换,...转载 2019-02-23 15:02:44 · 679 阅读 · 0 评论