转自:http://www.cnblogs.com/lyq105/archive/2009/11/28/1612677.htmlC语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明: sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。 其中的format可以是...
今天在刷leetcode的时候,发现快排居然C语言也有写好的库函数直接调用。真神奇。 一共有其中排序qsort的排序用法。 需要注意的是排序都是采用的从小到大的排序。一、对int类型数组排序int num[100];int cmp ( const void *a , const void *b ){return *(int *)a - *(int *)b;}qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型)char word[50];Sample:int cmp( const void *a , const void *b ){return ...
scanf()函数的控制串函数名: scanf功 能: 执行格式化输入用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: scanf("<格式化字符串>",<地址表>);scanf()函数返回成功赋值的数据项数,出错时则返回EOF。其控制串由三类字符构成:
1. 格式化说明符;
2. 空白符;
3. ...
11.10 枚举类型在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不...
转自(http://www.cnblogs.com/wchhuangya/archive/2009/12/25/1632160.html)一.基本概念剖析int* (*a[5])(int,
char*); //#1 void (*b[10]) (void
(*)()); //#2 double(*)()
(*pa)[9]; //#31.C语言中函数声明和数组声明。函数声明一般是这样:int
fun(int, double);对应函数指针(pointer to function)的声明是这样:int (*pf)(int,
double);可以这样使用:pf = &fun;
//赋值(assignment)操作...
https://www.cnblogs.com/mch0dm1n/p/5727667.htmlhttps://www.cnblogs.com/codingmengmeng/p/7220119.html0x01 extern用在变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。0x02 extern修饰变量的声明。 举例:若a.c中需引用b.c中的变量int v,可以在a.c中声明extern int v,然后就可以引用变量v;需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到变量v,...
欢迎指正!!!!标明出处,欢迎转载!!!!函数传参:就是形参复制一份实参的值,抱回函数体里算函数内部修改外部变量的值,需要一级指针;函数内部修改外部指针变量的值,需要二级指针;经典问题1 :交换CET1 和 CET2 的值(一级指针交换值)Wrong:void swap_val(int a, int b)
{int tmp = a;a = b;b = tmp;
}
错误:因为交换的是副本,真品没改变的 Practice:#include <bits/stdc++.h>
using namespace std;
/*** 通过一级指...
... 表示范围
case 0...4; // error
case 5 ... 9; // ok
eg 1:char ch = 4;switch(ch){case 1: printf(" into 1\n");break;case 3 ... 8: printf( " into 2 to 8\n");break;}out:into 2 to 8
eg 2:
switch(c) {
case ‘a‘ ... ‘z‘: 操作 break;
case ‘A‘ ... ‘Z‘: 操作 break;
case ‘0‘ ... ‘9‘: 操作 break;
case 1:
case 2:
case 3:操作 break;
...
<SPAN
style=‘font-family: "times new roman", times; font-size: large;‘>C语言里面的内联函数(inline)与宏定义(#define)探讨<SPAN
style=‘font-family: "times new roman", times; font-size: large;‘>先简明扼要,说下关键:
<SPAN
style=‘font-family: "times new roman", times; font-size: large;‘>1、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这...
const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰
的对象为常量(immutable)。
我们来分情况看语法上它该如何被使用。
1、函数体内修饰局部变量。
例:
void func(){
const int a=0;
}
首先,我们先把const这个单词忽略不看,那么a是一个int类型的局部自动变量,
我们给它赋予初始值0。
然后再看const.
const作为一个类型限定词,和int有相同的地位。
const int a;
int const a;
是等价的。于是此处我们一...
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明extern int v,还取决于变量v本身是能够被引用到的。这涉及到c语言...
1.简单的define定义#define MAXTIME 1000一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i<MAXTIME){.........}编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。2.define的“函数定义”define可以像函数那样接受一些参数,如下#define max(x,y) ...
typedef void (*post_sync_t)(CO_Data*);这个函数的原型是void f(CO_Data*);,经过了typedef void (*post_sync_t)(CO_Data*);后,post_sync_t就是f类型函数的指针的类型别名。这时你可以这样定义一个变量:post_sync_t p;,p就是一个指向f类型函数的指针。可以这样给p赋值,p=&f。如果你不typedef的话,定义p时你就得这样写:void (*p)(CO_Data*);原文:http://www.cnblogs.com/myyan/p/4710346.html
union共用声明和共用一变量定义:“联合”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这些数据共享同一段内存,以达到节省空间的目的(还有一个节省空间的类型:位域)。 这是一个非常特殊的地方,也是联合的特征。另外,同struct一样,联合默认访问权限也是公有的,并且,也具有成员函数。
共用体(...
开始的话
已经好长时间没有更新了,对不起自己,更对不起我亲爱的读者,同时也对不起自己开办的这个博客平台。忙,太忙了,忙于找工作,找一份好工作,纠结于去大城市闯呢,还是回到本省的首府城市。大家都在纠结这个问题,也希望大家和我讨论讨论。别的先不说了,都工作这么长时间了,还回过头来总结union,确实有点过分,要是和大家说我一直从事于C++开发,还不懂union,大家可能还真的不信。我们每天都在总结那些看似高端的东西...