- 博客(28)
- 收藏
- 关注
原创 extern、static关键字
extern、static 关键字在函数、全局变量、局部变量的作用各不相同。具体如下: a.c#include <stdio.h>/* extern void printA(); extern 可省略 外部函数声明 */void printA();void printB();void printD();//内部函数声明static void printC();//外部变量定义int
2015-04-27 23:19:31
435
原创 typedef关键字
#include <stdio.h>void print1(int,int);void print2(int,int);/* typedef 用于给类型定义别名 typedef 原类型名称 别名 *///基本数据类型typedef int myInt;typedef myInt myInt2;//指针typedef char * String;//结构体/* 1. struct S
2015-04-27 22:19:25
397
原创 条件编译
#include<stdio.h>#define A 1int main(){ int a=1; /* 此语句有错误,条件编译指令为预编译指令 在预编译时程序还未运行,因此无法取得变量a的值 #if(a==1) printf("错误语句"); #endif */#if (A==1)//可以省略()写成 #if A==1
2015-04-27 20:25:47
461
原创 宏定义及带参数的宏定义
#include<stdio.h>//宏定义,通常用于定义常量,在代码转换成二进制文件时会将代码中的宏名称替换成值//#define 宏名称 值#define A 1//带参数的宏 fun(a,b)为宏的名称 a+b为宏的值#define fun(a,b) a*b//为了保证替换结果,最好加入()运算符#define fun2(a,b) ((a)*(b))/* 预处理指令有三种: 1
2015-04-27 19:54:21
831
原创 枚举enum
int main(){ /* enum 枚举名称{val0,val1...}; val0默认值为0,val1为1,依次类推 enum 枚举名称{val0=3,val1...}; 设置了val0的值为3,则val1为4,依次类推 */ enum Sex { male, female, un
2015-04-27 00:39:35
269
原创 结构体struct
int main(){ /* 定义结构体类型 1.结构体占用空间大小为属性(成员)占用空间大小的和 1>如果结构体占用空间大小不是占用空间最大元素的倍数 则会自动补齐为倍数。 2>sizeof(p4.name)=8, sizeof(p4.age)=4, sizeof(p4.sex)=4 8+4+4=
2015-04-26 23:27:04
405
原创 数组的定义
数组定义数据类型 变量名[大小];1.int a[10];a[0]=1;a[1]=2;...2.int a[10]={1,2,3};3.int a[]={1,2,3};4.int a[10]={[1]=1,[3]=3};列子int a[10]; a[0]=1; a[1]=2; int b[]={1,2,3}; int c[10]={[1]=1,[3]=3}
2015-04-26 22:07:24
438
原创 指向函数的指针
void a();char *b();int c(int *,int);int main(){ /* 1. 函数的名称相当于函数的地址 2. 指向函数的指针,定义格式 指向函数的返回值 (*指针名称)(指向函数的参数列表) 3. 调用方式 1> (*指针名称)() 2> 指针名称() */
2015-04-26 21:46:06
290
原创 函数、指针、数组
void changeA(int *);int *getPoint();void changeArray(int array[]);int *getArray();int main(){ int a=10; changeA(&a); printf("a=%d\n",a); int *b; b=getPoint(); printf("*b=%d\n
2015-04-26 21:21:35
309
原创 关于字符数组、字符串、字符指针、字符指针数组
int main(){ char str1[]="abc"; char str2[]="a\0bc"; //字符数组(没有以'\0'结束) char str3[]={'a','b'}; char str4[]="哈"; /* 1.printf()中的%s占位符,在输出字符串时,只匹配到'\0'字符结束 2.strlen()函数计算
2015-04-26 20:44:41
321
原创 指针的类型
C语言中的指针类型用于告诉指针,其所指向的地址存放什么数据类型,而指针本身占用8个字节(64位编译器)的大小跟类型无关。 但对指针进行输入、输出操作时,指针的类型却至关重要。 例如输出时,如果指针定义为char类型,则指针会从所指向的地址至内存高位寻找1Byte(64位编译器)的内容输出。 如果定义为int类型,则会从所指向的地址至内存高位寻找4Byte(64位编译器)。int main()
2015-04-24 21:24:24
389
原创 指向指针的指针
int main(){ int a=10; //指向 变量a 的指针 int *p=&a; //指向 指针p 的指针 int **pp=&p; //指向 指向 指针p 的指针pp 的指针 int ***ppp=&pp; //*&p --相当于-- &*p printf("1.&a=\t%p , &p=\t%p \n &pp=\t
2015-04-24 15:08:40
434
原创 输出数字在内存中呈现的二进制数值
以下例子用于输出一个数字在内存中呈现的二进制数值。 其中有一些知识点需要注意:1.sizeof(num)用于获得num在内存中占用的字节数 2.<< 是二进制位左移操作 num<<1 --相当于-- num*2 num<<2 --相当于-- num*2*2 num<<n --相当于-- num*2^n(2的n次方)3.>> 是二进制位右移操作 num>>1
2015-04-23 18:58:48
1497
原创 利用按位与(&)判断数字的奇偶性
int main(){ int num; int q; do { printf("请输入一个整数\n"); scanf("%d",&num); if(num & 1) { printf("这个数是奇数\n"); } else {
2015-04-23 18:02:45
678
原创 采用不同方式进行数值交换
int main(){ int n1=1; int n2=10; printf("原数值n1=%d,n2=%d\n",n1,n2); //采用中间变量方式交换数值 int temp=n1; n1=n2; n2=temp; printf("第一次交换后n1=%d,n2=%d\n",n1,n2); //采用加减法交换数值 n1
2015-04-23 17:51:14
311
原创 C语言多文件编译
a.c文件//系统头文件使用<>#include <stdio.h>//自定义头文件使用""#include "b.h"int main(){ fun(); return 0;}b.c文件//b.c文件中存在一个fun()函数void fun(){ /* ... */}b.h文件//b.h文件用于存放b.c文件中函数的声明void fun(
2015-04-22 14:04:16
487
原创 C语言中的函数定义及函数声明
函数声明是由编译器检测的,只要调用函数前对其声明即可。 因此: 如果函数 void a()并不存在 但在程序中调用了 a(),且在之前进行了函数声明void a() 此时编译程序(cc -c)时编译器不会报错,但生成可执行文件(cc -o)时会报错。#include<stdio.h>//函数可以重复声明//void myPrint();//void myPrint();int main(
2015-04-22 11:48:12
634
原创 for循环作用域
for循环中,不同位置定义的变量作用域是不一样的。int main(){ int i=0; for(int i=0;i<3;i++) { printf("\tfor定义的i=%d\n",i); int i=5; { int i=10; printf("\t\t\tfor内部代码块定
2015-04-21 23:28:03
1166
原创 C语言中的逗号表达式
逗号表达式(,)也称逗号运算符,用于把多个表达式连接起来。int main(){ int a=(1+1,2+1,2+3); printf("%d\n",a); printf("循环结果为\n"); for(int i=0 ; i<3 ; printf("%d\n",i) , i++); return 0;}输出结果5循环结果为012
2015-04-21 22:44:25
441
原创 Mac OS X Terminal 打开Tab键自动补全功能
打开Terminal应用程序 输入 nano .inputrc再输入以下语句:set completion-ignore-case onset show-all-if-ambiguous onTAB:menu-complete输入完毕后 按下 Control + o 然后关闭、重启
2015-04-21 20:44:24
7575
转载 优快云-markdown编辑器使用说明
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-04-21 20:30:36
432
原创 C语言中的作用域不明确错误
在C语言中编译器认为一个变量的作用域为距离其最近且包含其自身的{}内,但在一些特殊语法中(如 if-else 语句中),由于编码人员的不注意会造成变量的作用域不明确,从而导致编译器无法区分变量的作用域范围,则会报告作用域不明确编译错误。 为避免此类错误发生,在使用这些语句时应加入语句块{}避免错误发生。 如下所示:int main(){ /* if(1) int
2015-04-20 23:39:56
802
原创 C语言中的sizeof运算符
int main(){ int a=10; printf("%lu\n",sizeof(a)); printf("%lu\n",sizeof a); printf("%lu\n",sizeof(1)); printf("%lu\n",sizeof 1); printf("%lu\n",sizeof(int)); //错误写法 //prin
2015-04-20 22:02:42
708
原创 Mac OS X Safari 插件存放位置
shift + command + g输入 /Library/Internet Plug-Ins/ 即可输入~/Library/Internet Plug-Ins/可查看当前用户插件
2015-04-20 14:07:23
2532
原创 Mac OS X hosts文件存放位置
shift+command+g输入 /private/etc/hosts 即可hosts编辑时需要提前权限。private文件夹及etc文件夹也要同时设定,否则依然不允许修改。
2015-04-20 13:58:53
866
原创 C语言数据类型及内存占用
C语言数据类型包含:基本数据类型(int、char、float、double…)空类型(void)指针类型(*)构造类型(数组、结构体[struct]、公共体[union]、枚举[enum])其中基本数据类型在32及64位编译器中char类型占中**1**Byte、int类型占用**4**Byte、float类型占中**4**Byte、double类型占中**8**Byte。另外内存分配空
2015-04-20 13:47:47
773
原创 C语言常用占位符及各进制数值定义
%d 十进制整数占位符%c 字符占位符%f(.2f) 浮点类型占位符(小数部分占2位)%i 十进制、八进制、十六进制整数占位符%p 地址占位符(指针占位符)%s 字符串占位符%x(X) 十六进制整数占位符%o 八进制整数占位符%% 输出%
2015-04-20 11:40:53
12616
1
原创 linux常用操作命令
ls (ls -l) 列出当前目录所有内容pwd 显示当前操作路径cd 改变当前操作路径who 显示当前用户名clear 清屏mkdir 创建目录touch 创建文件open 打开文件、文件夹
2015-04-19 13:24:14
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人