前言:很久没看复习c了,现在c的程序有些都看不懂了
c基础知识
- 1、c/c++/java基本数据类型字节数的区别
- java全部都是有符号,java中char是两个字节
- 2、声明、定义、初始化三者区别:
- 声明只是表示存在,如extern,定义开辟内存了空间,初始化则赋值了
- 3、c的静态局部变量只被初始化一次
- 4、c的局部变量必须初始化后才能使用,全局变量会默认初始化
- 5、c的数组必须初始化,否则不可预知
- 6、枚举类enum使用,实例化、类型转换时都带上enum标志
- 7、函数指针,返回类型+(*p)+(形参类型)
- 8、回调函数,就是存在函数指针作为形参
- 9、c风格的字符串,string类型
- 10、结构体struct使用,实例化、类型转换时都带上struct标志
- 11、结构体指针以及结构体位域
- 12、c共用体union
- 13、typedef为类型取别名,注意typedef struct取别名后,以前实例变量位置是新的类型别名
- 14、输入输出操作 scanf printf gets puts get put
- 15、文件操作,File *fp,写入文件fprintf 或 fputs,读取文件fscanf 或 fgets
- 16、预处理器
- 17、强制类型转换
- 18、错误处理
- 19、可变参数
- 20、内存管理 malloc realloc
- 21、c命令行参数 int main(int argc, char *argv[]) argv[0] 项目名 后面的才是参数
/**
* 1、c/c++/java基本数据类型字节数的区别
* java全部都是有符号,java中char是两个字节
*
* 2、声明、定义、初始化三者区别:
* 声明只是表示存在,如extern,定义开辟内存了空间,初始化则赋值了
*
* 3、c的静态局部变量只被初始化一次
*
* 4、c的局部变量必须初始化后才能使用,全局变量会默认初始化
* 5、c的数组必须初始化,否则不可预知
*
* 6、枚举类enum使用,实例化、类型转换时都带上enum标志
*
* 7、函数指针,返回类型+(*p)+(形参类型)
* 8、回调函数,就是存在函数指针作为形参
*
* 9、c风格的字符串
*
* 10、结构体struct使用,实例化、类型转换时都带上struct标志
* 11、结构体指针以及结构体位域
* 12、c共用体union
* 13、typedef为类型取别名,注意typedef struct取别名后,以前实例变量位置是新的类型别名
*
* 14、输入输出操作 scanf printf gets puts get put
* 15、文件操作,File *fp,写入文件fprintf 或 fputs,读取文件fscanf 或 fgets
*
* 16、预处理器
* 17、强制类型转换
* 18、错误处理
* 19、可变参数
* 20、内存管理 malloc realloc
* 21、c命令行参数 int main(int argc, char *argv[]) argv[0] 项目名 后面的才是参数
*
*
system("pause");
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char name[100];
char *description;
strcpy(name, "Zara Ali");
/* 动态分配内存 */
description = (char *)malloc( 30 * sizeof(char) );
if( description == NULL )
{
fprintf(stderr, "Error - unable to allocate required memory\n");
}
else
{
strcpy( description, "Zara ali a DPS student.");
}
/* 假设您想要存储更大的描述信息 */
description = (char *) realloc( description, 100 * sizeof(char) );
if( description == NULL )
{
fprintf(stderr, "Error - unable to allocate required memory\n");
}
else
{
strcat( description, "She is in class 10th");
}
printf("Name = %s\n", name );
printf("Description: %s\n", description );
/* 使用 free() 函数释放内存 */
free(description);
}