c语言
陈俊1992
这个作者很懒,什么都没留下…
展开
-
一维数组长度测试
#include int main(){int buf[10] = {1,2,3,4,5,6,7,8,9,0};printf("buf[0] length = %d\r\n",sizeof(buf[0]));printf("&buf[0] length= %d\r\n",sizeof(&buf[0]));printf("buf length = %d\r\n",原创 2017-10-21 12:24:40 · 569 阅读 · 0 评论 -
关于内存及字符数组,字符串的一些注意点
1、数据段(也被称为数据区、静态数据区、静态区):数据段就是程序中的数据,直观理解就是C语言程序中的全局变量。(注意:全局变量才算是程序的数据,局部变量不算程序的数据,只能算是函数的数据)经过自己的代码测试:静态局部变量未初始化和初始化为0的变量存储的地址是连续的初始化为不为0的值的变量也是相互连续的但上述两种类型的变量之间的地址却不是连续的,猜测静态局部变量和全局变量一模一样原创 2017-10-22 22:28:40 · 253 阅读 · 0 评论 -
结构体难点总结
本文中不涉及结构体一些基础知识的说明1、结构体定义时需要先定义结构体类型,然后再用类型来定义变量。也可以在定义结构体类型的同时定义结构体变量。举例:// 定义类型的同时定义变量。struct student{char name[20];int age;}s1;// 将类型struct student重命名为s1,s1是一个类型原创 2017-10-24 22:52:07 · 790 阅读 · 0 评论 -
函数指针,数组指针等知识总结
1、函数指针的实质还是指针,还是指针变量。本身占4字节(在32位系统中,所有的指针都是4字节)2、函数指针、数组指针、普通指针之间并没有本质区别,区别在于指针指向的东西是个什么玩意。3、typedef char* (*pType)(char *, const char *);pType fun1;分析:这句重命名了一种类型,这个新类型名字叫pType,类型是原创 2017-10-25 13:04:25 · 208 阅读 · 0 评论 -
关于大小端模式的说明
1、高字节对应低地址(大端模式)、高字节对应高地址(小端模式)有些CPU是大端(譬如C51单片机);有些CPU是小端(譬如ARM)。(大部分是用小端模式)2、用C语言写一个函数来测试当前机器的大小端模式。用union来测试机器的大小端模式union myunion{int a;char b;};int is_little_endian原创 2017-10-25 22:12:24 · 232 阅读 · 0 评论 -
sprintf使用说明
for(i = 0;i{sprintf(pic_tmp,"picture_270/set/delay/%d.png",i);}无信息打印for(i = 0;i{sprintf(pic_tmp,"picture_270/set/delay/%d.png",i);printf("%s\r\n",pic_tmp);}打印信息如下:pic原创 2017-12-01 09:27:17 · 292 阅读 · 0 评论 -
字符数组初始化书写格式
正确格式1unsigned char default_environment[0x4000] = {"bootargs=" "root=/dev rootfstype=yaffs2""\0""bootcmd=" "movi read kernel 30008000;""\0"};编译后,字符串之间的空格会被去掉,而字符串里面的空格会被保留正确格式2原创 2017-11-23 19:59:54 · 705 阅读 · 0 评论 -
goto语法测试
#include int main(){printf("flag0\n");goto flag3;printf("flag1\n");flag3: printf("flag3\n");flag2: printf("flag2\n");return 0; }打印结果:flag0flag3flag2原创 2017-12-26 14:10:18 · 481 阅读 · 0 评论 -
c语言字符串和数字转换函数总结
字符转换为数字:atoi();将字符转换为整型 例:char ch1;int i=atoi(ch1);atol();将字符转化为长整型 例:char ch2;long l=atol(ch2);atof();将字符转化为浮点型 例:char ch3;float f=atof(ch3);strtod(); 将字符串转化为双精度类型 例:stri原创 2018-01-09 20:02:54 · 248 阅读 · 0 评论 -
c语言函数指针举例说明
void func(int a, int b){ printf("a = %d, b = %d\n",a,b);}//1 定义一个函数类型typedef void(myfunctype)(int, int); //定义了一个函数类型, 返回值void 参数列表是 int,int //2 定义一个函数指针类型 typedef void(*pmyfunctype)(int, i...原创 2018-07-30 22:58:24 · 519 阅读 · 0 评论 -
关于if的一个知识点
if(-1){//条件成立}if(0){//条件不成立}if(1){//条件成立}总结:if条件判断,应该是if(0)不成立 if(!0)成立而不是if(>0)成立 if(原创 2017-10-20 10:14:52 · 670 阅读 · 0 评论 -
几句话说明const的用途
第一种:const int *p;//表示p本身不是const的,p指向的那个变量*p是const的。第二种:int const *p;//表示p本身不是const的,p指向的那个变量*p是const的。第三种:int * const p;//表示p本身是const的,p指向的那个变量*p不是const的。第四种:const int * const p;//表示p本身是const的原创 2017-10-27 09:11:26 · 261 阅读 · 0 评论 -
对stm32f1系列RTC功能的总结
1 RTCCLK是时钟的来源,RTC_PRL表示对其进行预分频,分频后得到的时钟为TR_CLK而RTC_DIV的时钟还是RTCCLK 这就说明RTC_DIV是要比TR_CLK要精确的。2 正常配置后,到达TR_CLK的时钟为1HZ,下面对这三个中断做下简单的说明RTC_Second 秒中断,开启后将1s产生一个中断3 假设RTC_CNT的值设置为10000,RTC_ALR的值设置为原创 2017-03-31 23:57:35 · 1185 阅读 · 0 评论 -
关于#ifdef的一个注意事项
#include// #define AA#define BBint main(){#ifdef AA printf("aa\n"); #ifdef BB printf("bb\n"); #endif#endifreturn 0; }如果AA没有定义,则没用打印输出,如果定义了AA,则同时输出 aa原创 2017-04-24 09:06:35 · 483 阅读 · 0 评论 -
关于枚举类型
typedef enum{ UART_Channel_1 = 0x01, UART_Channel_2 UART_Channel_3 UART_Channel_4 UART_Channel_5 }UART_Channel_Number;分析:UART_Channel_1 UART_Chan原创 2017-06-29 14:27:00 · 229 阅读 · 0 评论 -
关于结构体引用. ->的用法
struct xMINI_LIST_ITEM{int xItemValue;/*记录列表列表项值*/struct xMINI_LIST_ITEM * pxNext;/*指向下一个列表项*/struct xMINI_LIST_ITEM * pxPrevious;/*指向上一个列表项*/};typedef struct xMINI_LIST_ITEM MiniL原创 2017-06-21 13:30:50 · 623 阅读 · 0 评论 -
指针数组功能测试
从字面上理解:指针数组是一个数组,只是数组中存的元素都是指针类型的。代码测试:int main(){char *n[3]={"gain","strong","much"};printf("n[0] = %p\r\n",n[0]);printf("n[1] = %p\r\n",n[1]);printf("n[2] = %p\r\n",n[2]);n[0] = "gai原创 2017-09-13 15:17:50 · 203 阅读 · 0 评论 -
二维数组功能测试,超详细
#include int main(){char buf[2][5] = {'a','b','c','d','e','f','g','h','i','j'};printf("buf[0] = %c\n",buf[0]);printf("buf[0] = %d\n",buf[0]);printf("buf[0] = %p\n",buf[0]);printf("bu原创 2017-09-27 15:30:47 · 2867 阅读 · 0 评论 -
*p++
int main(){int buf[10] = {1,2,3,4,5,6,7,8,9,0};int *p = buf;int *q = &buf[9];printf("p = %p\r\n",p);printf("*p = %d\r\n",*p);// q = *p++;//执行报错*q = *p++;printf("q = %p\r\n",q);prin原创 2017-09-02 19:40:57 · 311 阅读 · 0 评论 -
关于指针变量初始化测试
#include char *p1;char *p2;int *p3;int main(){char *p4;char *p5;int *p6;printf("p1 = %p\r\n",p1);printf("p2 = %p\r\n",p2);printf("p3 = %p\r\n",p3);printf("p4 = %p\r\n",原创 2017-09-21 16:59:46 · 169 阅读 · 0 评论 -
关于结构体成员变量用 . 还是 ->
之前一直认为引用结构体成员,指针的话用 -> ,成员变量的话用 . 。但是一直都没去深究过,今天遇到一个复杂的,决心去了解一下。typedef struct _IPC_ISP_CFG_DATA{ IPC_ISP_CTRL stDefaultCtrl; IPC_ISP_PARAM stParam; IPC_ISP_CAP stCap; IPC_ISP_C...原创 2018-09-06 21:37:55 · 1679 阅读 · 0 评论