一、数据类型
数据类型名 | 长度(32位) | 长度(64) |
---|---|---|
char | 1字节 | 1字节 |
short | 2字节 | 2字节 |
int | 4字节 | 4字节 |
long | 4字节 | 8字节 |
long long | 8字节 | 8字节 |
float | 4字节 | 4字节 |
double | 8字节 | 8字节 |
size_t | 4字节 | 8字节 |
ssize_t | 4字节 | 8字节 |
二、局部变量和全局变量
1.局部变量出现在三种地方,
(1)在函数的开头定义的变量。
(2) 在函数内的复合语句内定义。
(3)形式参数
在一个函数内部定义的变量只在本函数范围内有效,也就是只有本函数内才能引用它们,在此函数外不能使用这些变量。在复合语句内定义的变量只能在本复合语句范围内有效,只有本复合语句内才能引用他们,在该复合语句外不能使用这些变量。还有就是函数的形参,只在该函数内有效。这三种情况下出现的变量为局部变量。
2.一个源文件可以包含若干个函数,在函数之外定义的变量称为全局变量。全局变量可以为本文件中其它的函数所共用,他的有效范围从定义变量的开始位置到本源文件结束。
(1)全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。
(2)它使函数的通用性降低,如果在函数中引用了全局变量,那么执行情况会受到有关的外部变量的影响。如果将一个函数移到另一个文件中,还要考虑把有关的外部变量及其值一起弄过去。
3.区别
(1)作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环
(2)内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区
(3)生命周期不同:全局变量的生命周期和主程序一样,随程序的销毁而销毁,局部变量在函数内部循环你内部,随函数肚饿退出或循环的退出就不存在了
(4)使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用函数内部会优先使用局部变量再使用全局变量。
三、字符串
1.函数
(1)strcpy(char destination[], const char source[]);
功能:将字符串Source拷贝到字符串destination中
(2)strncpy(char destination[], const char source[], int numchars);
功能:将字符串source中前numchars个字符拷贝到字符串destination中
(3)strcat(char target[], const char source[]);
功能:将字符串source接到字符串target的后面
(4)strncat(char target[], const char source[], int numchars);
功能:将字符串source的前numchars个字符接到target的后面
(5)strlen( const char string[])
功能:统计字符串string中字符的个数
(6)int strcmp(const char str1[], const char str2);
功能:比较两个字符串firststring和secondstring
(7)char *strchr(const char *string, char c);
功能:查找字符串string中首次出现的位置, NULL结束符也包含在查找中.。
(8)char *strstr(const char *string, const char *strSearch);
功能:在字符串string中查找strSearch子串.。
2.sizeof和strlen的区别
sizeof是一个判断数据类型或者表达式长度的运算符,而strlen是一个计算字符串长度的函数,sizeof计算字符串计算’\n’,而strlen是不计算’\n’
四、转义字符
转义字符 | 释义 |
---|---|
\? | 在书写连续多个问号使用,防止他们被解析三字母词 |
\’ | 用于表示 字符串常量’ |
\" | 用于表示一个字符串内部的双引号 |
\\ | 表示反斜杠 |
\a | 警告字符 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | 表示8进制的数字 |
\xddd | 表示16进制数 |