您的位置:首页 > 编程语言 > C语言/C++

C语言基础知识 - 笔记(一)

2017-08-18 20:32 190 查看

C语言基础知识 - 笔记(一)

数据类型

char—8位—127—255

int—16位—32767—65535

short—16位—32767—65535

long—32位—2147483647—4294967295

在表达式中,P是指针,*P是指向它的内容

函数指针 V.S. 指针函数

函数指针 int (*fun) ():本质上是一个指针,指向一个函数的地址,用于函数调用

指针函数 int * fun ():本质上是一个函数,返回值是一个指针地址

define、static和 typedef关键字

define

define是C语言中的预处理命令,用于宏定义,提高源代码的可读性。预处理命令以#开头。在C或者C++中源程序允许用一个标识符表示一个字符串(可以是常数、字符串、表达式等),称为“宏”。用标识符代替字符串的过程叫做“宏替换”或者“宏展开”。宏定义分为带参数宏和不带参宏。

static

可以修饰变量或者函数。由static修饰的变量只能在本文件中使用,变量存储在全局存储区中(不是堆栈中),仅在变量的作用范围内可见。能不用尽量不用。

typedef

用途一:定义一种类型的别名,而不是简单的宏替换

用途二:与struct一起使用

用途三:定义平台无关的类型

用途四:为复杂的声明定义一个新的简单的别名

sizeof和strlen

sizeof

单目运算符,以字节的形式给出操作数的存储空间的大小

sizeof的操作数可以是数据类型、函数、变量、表达式。注:对函数求值其结果是函数返回类型的大小

strlen

C语言标准库提供的一个函数,用于计算字符串长度。它的参数必须是char * ,需要依赖字符序列中的’\0’来判断是否结束。

字符串函数:

strcpy(char * destin, char * source):字符串拷贝

strcat(char * destin, char * source):字符串拼接

strcmp(char * str1, char * str2):字符串比较,看ASC码,相等返回0

strrev(char * str):字符串倒转

strupr(char* str):将串中的小写字母转化为大写

按值传递、指针传递、引用传递

按值传递(两个指针指向两个地址)

仅仅是把值拷贝到了另一个内存地址上,并没有改变原来变量(地址上)的值。

指针传递(两个指针指向一个地址)

改变一个新指针的指向,使之指向原来变量的地址,通过改变新指针指向内容可以改变原来变量的值。

引用传递(一个指针指向一个地址)

直接传递原变量的地址,通过修改内存地址上的值可以改变变量值

结构体、枚举、联合

联合本质上是所有成员叠加的结构体,某一时刻只能使用一个成员,联合体的大小是它最大成员的大小,而结构体的大小是所有成员大小的和

位域
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息