随笔分类 - C
摘要:#include #include //位字段:嵌入式的物联网设备开发,需要节约内存,可以使用位字段,用来限定某个结构如变量的二进制位 struct dateE{ unsigned int day; // day只有1-31的取值,无需用到4个字节,浪费了内存 2^5=32 5个二进制位就足够了 unsigned int month; // month只有1-12的取值...
阅读全文
摘要:(1) 为特定的类型指定了一个同义字(synonyms)。例如①typedef int Num[100]; Num a; Num是int [100]的同义词②typedef int (*Pointer)();Pointer p1; Pointer是int (*)()的同义词(2) 用typedef只
阅读全文
摘要:编译器会为结构体变量中的每个数据成员分配不同的地址空间,也就是说,结构体变量中的数据程序是并列关系,而编译器为共用体变量中的数据成员分配的是同一块内存,每个时刻只有一个数据成员有意义,从地址的角度来看两者的差异,形象地表明了这一点 结构体变量占据的内存单元的个数应当大于等于其内部所有数据成员占据内存
阅读全文
摘要:1、main 调用自定义字符串函数,只需要include “MyString.h”即可 2、myString.h //自定义字符串函数声明 3、realizeMyString.c 自定义函数实现
阅读全文
摘要:1,结构体定义 2、结构体嵌套 3、结构体数组 4、结构体指针 5、指向结构体数组的指针 6、用指向结构体的指针作函数参数用结构体变量的成员作参数 值传递,新建副本用指向结构体变量或数组的指针作参数 地址传递用结构体变量作参数 多值传递,效率低,也是值传递 7、内存动态分配
阅读全文
摘要:#include <stdlib.h> #include <stdio.h> #include <locale.h> void main(){ printf("你好天朝"); //unicode 编码会输出乱码:浣犲ソ澶╂湞 //用多字符集编码不会乱码 char str[20] = "你好中国"; printf("%s\n",str); //unicode 编码会输出乱码:姴銈芥稉顓炩偓 pr
阅读全文
摘要://自主实现字符串函数strset(char * str, char c) #include #include #include ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////...
阅读全文
摘要:void main(){ char str[18] ="t88355"; int num = atoi(str+1); //把字符串转换成整数,参数传递的是从某一位开始往后的所有字符,出现非数字字符都会转换失败,就是0 printf("%d\n",num); // 88355 } //字符串与整数之间的转换 #include #include ...
阅读全文
摘要://将某个字符串插入到一个字符串中,在hello cpp hello china中,在cpp后插入luoxu #include #include #include char * insertString(char *str, char *substr, char *source){ if (str == NULL || substr == NULL){ return...
阅读全文
摘要://内存函数 #include #include #include void main2(){ //memset赋值函数 char str[45] = "hello luoxu hello c"; memset(str,'A',6); //第一个参数内存首地址,第二个参数要赋值的值,第三个参数从首地址前进多少个字节 printf("%s\n",str); //A...
阅读全文
摘要:#include <stdio.h> #include <stdlib.h> //在各种编程语言中,字符串的地位都十分重要,C语言中并没有提供“字符串”这个特定类型,而是以特殊字符数组的形式来存储和处理字符串, // 这种字符数组必须以空字符’\0’结尾,因此,也将这种特定字符数组称为C风格字符串,本节讨论字符串和字符串的一些处理函数。 // C风格字符串是字符数组的一种特例,这个“特”字体现在“
阅读全文
摘要://一级指针字符串 没有改变成功 char str1[20] ="notepad"; char str2[20] ="calc"; void change(char *str){ //函数有副本机制,会新建一个变量str来存储main函数中p传过来str1的首地址 printf("str in change: %p,%p\n",str,str2); //str in change: 0040300
阅读全文
摘要:详解为什么32位系统只能用4G内存. 既然是详解, 就从最基础的讲起了. 1. Bit(位) Bit计算机是计算机最小的存储单位, 大家都知道计算机实质上都是用二进制数0或者1来存储数据的, 所以Bit实际上可以看成存放1个二进制数字的1个位置. 也就是说bit只有2种值, 0 或者 1, 所以1个
阅读全文
摘要:#include #include //malloc free #include //sleep void main1(){ //int a[1024*1024*1000]; //数组只能处理小数量的数据 int num =100; //int b[num]; 数组的大小必须明确,num是变量,随时可以变化 //数组内存这种分配机制就称为静态分配,数...
阅读全文
摘要:#include int add(int a, int b ){ //函数的返回值和参数意一样有副本机制,存储在寄存器中,而不在内存中,函数的返回值不能取地址 &add() return a+b; } void main1(){ //定义函数指针的三部曲 int add(int a, int b ); //第一步:函数声明 int (*p)(int a, in...
阅读全文
摘要:#include //数组名做参数,会改变数组本身的值 void printA(int a[],int n){ printf("%d\n", sizeof(a));//4 传入的是首地址 for (int i = 0; i < n; ++i) { printf("%d ",a[i]); } printf("\n"); } void printB(...
阅读全文
摘要:#include #include //操作数组的本质是操作指针,因为指针太麻烦,不便于理解,所以才抽象出简单的指针,也是就是数组,a[i]是 *(a+i)的简写 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////...
阅读全文
摘要:http://c.biancheng.net/view/2022.html http://c.biancheng.net/view/2020.html
阅读全文
摘要:1、指针类型和指向的数据类型不同时 2、指针类型和指向的数据类型相同时
阅读全文

浙公网安备 33010602011771号