指针数组是由多个同类型的指针变量构成的数组,声明方法如下
int *values[3];
指针数组和二级指针可以互相替换
数组指针是一个指针变量,可以用来记录二维数组的名称,声明方法如下
int (*p_values)[3];
数组指针可以和二维数组互相替换
数组指针加一时,一的单位是整个一维数组的大小
FILE结构体用来表示文件系统中的一个文件
fopen函数可以打开一个文件,如果失败则返回NULL,否则返回FILE结构体变量的地址。
打开模式结构如下
第一部分从如下三个字母中选择一个,必须存在
'r' : 对文件进行读操作,要求文件已经存在
'w' : 对文件进行写操作,如果文件还不存在则创建一个
新文件,如果文件存在则删除
'a' : 对文件进行写操作,如果文件已存在则把新内容追
加在文件结尾
第二部分由符号'+'表示,可以不存在。如果存在则表示对文件进行读写操作。
第三部分由符号'b'表示,可以不存在。如果存在则表示以二进制方式对文件进行操作。
fclose函数用于关闭一个文件,参数是一个FILE结构体变量地址
fputc函数可以把一个字符写入到文件中,如果失败则返回EOF。
fgetc函数可以从文件中读出下一个字符并返回,如果失败则返回EOF。
fread和fwrite函数可以以二进制方式对文件进行批量读写操作
rewind函数可以把文件的位置指针移动到文件开头
fseek函数可以把位置指针移动到文件中任何位置,三个基准点如下
SEEK_SET : 0 表示文件开头
SEEK_CUR : 1 表示位置指针当前位置
SEEK_END : 2 表示文件末尾
ftell函数可以用返回值报告当前位置指针相对于文件开头的距离
fgets可以从文件中读一个字符串。
fputs可以把一个字符串写入到文件中。
fprintf函数可以按照格式把数据写入到文件中
fscanf函数可以按照格式从文件中读数据到变量中
atoi函数可以把字符串中的整数读出
atof函数可以把字符串中的浮点数读出
sprintf函数可以把多个变量的内容拼凑成一个字符串
sscanf函数可以从字符串中读出多个数据并记录在多个变量中
/*
指针数组练习
*/
#include <stdio.h>
int main(int argc, char *argv[]) {
int values[] = {6, 3, 7}, loop = 0;
int *p_value = NULL;
int *p_values[3] = {values, values + 1, values + 2};
/*p_value = p_values[0];
p_values[0] = p_values[1];
p_values[1] = p_value;*/
p_value = p_values[1];
p_values[1] = p_values[2];
p_values[2] = p_value;
p_value = p_values[0];
p_values[0] = p_values[1];
p_values[1] = p_value;
for (loop = 0; loop <= 2; loop++) {
printf("%d ", *p_values[loop]);
}
printf("\n");
return 0;
}
/*
字符串排序练习
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void* p_value, const void* p_value1) {
const char** p_str = (const char**)p_value;
const char** p_str1 = (const char**)p_value1;
return strcmp(*p_str, *p_str1);
}
int main() {
char *str[] = {"China", "France", "England", "Russia", "America"};
int loop = 0;
qsort(str, 5, sizeof(char*), compare);
for (loop = 0; loop <= 4; loop++) {
printf("%s\n", str[loop]);
}
return 0;
}
/*
数组指针练习
*/
#include <stdio.h>
int main() {
int values[2][3] = {0};
//int **pp_values = values;
int (*p_values)[3] = values;
/*printf("%p\n", pp_values[0]);
printf("%d\n", pp_values[0][0]);*/
printf("%d\n", values[0][0]);
printf("%d\n", p_values[0][0]);
values[1][1] = 3;
printf("%d\n", p_values[1][1]);
printf("%p, %p\n", p_values, p_values + 1);
printf("%p, %p\n", values, values + 1);
return 0;
}
/*
文件练习
*/
#include <stdio.h>
int main() {
FILE *p_file = fopen("a.txt", "w");
if (p_file) {
//文件操作语句
fclose(p_file);
p_file = NULL;
}
return 0;
}
/*
文件练习
*/
#include <stdio.h>
int main() {
FILE *p_file = fopen("a.txt", "w");
if (p_file) {
//文件操作语句
char str[] = "Hello China!";
int pos = 0;
while (str[pos] != 0) {
if (EOF == fputc(str[pos], p_file)) {
break;
}
pos++;
}
fclose(p_file);
p_file = NULL;
}
return 0;
}
/*
文件练习
*/
#include <stdio.h>
int main() {
FILE *p_file = fopen("a.txt", "r");
if (p_file) {
//文件操作语句
char ch = 0;
while (EOF != (ch = fgetc(p_file))) {
printf("%c", ch);
}
printf("\n");
fclose(p_file);
p_file = NULL;
}
return 0;
}
/*
文件练习
*/
#include <stdio.h>
int main() {
FILE *p_file = fopen("a.txt", "r");
if (p_file) {
//文件操作语句
char buf[20];
int size = 0;
while (EOF != (buf[size] = fgetc(p_file))) {
size++;
}
fclose(p_file);
p_file = NULL;
p_file = fopen("a.txt", "w");
if (p_file) {
size--;
while (size >= 0) {
if (EOF == fputc(buf[size], p_file)) {
break;
}
size--;
}
fputc('\n', p_file);
fclose(p_file);
p_file = NULL;
}
}
return 0;
}
/*
文件练习
*/
#include <stdio.h>
int main() {
int values[] = {1, 2, 3};
FILE *p_file = fopen("a.bin", "wb");
if (p_file) {
//文件操作语句
int size = fwrite(values, sizeof(int), 3, p_file);
printf("共写入%d个变量\n", size);
fclose(p_file);
p_file = NULL;
}
return 0;
}
/*
文件练习
*/
#include <stdio.h>
int main() {
int values[3] = {0}, loop = 0;
FILE *p_file = fopen("a.bin", "rb");
if (p_file) {
//文件操作语句
int size = fread(values, sizeof(int), 3, p_file);
printf("共读出%d个变量\n", size);
for (loop = 0; loop <= 2; loop++) {
printf("%d ", values[loop]);
}
printf("\n");
fclose(p_file);
p_file = NULL;
}
return 0;
}
/*
文件练习
*/
#include <stdio.h>
int main() {
FILE *p_file = fopen("a.txt", "r");
if (p_file) {
//文件操作语句
char ch = 0;
fseek(p_file, 3, SEEK_SET);
ch = fgetc(p_file);
printf("%c ", ch);
//rewind(p_file);
fseek(p_file, 3, SEEK_CUR);
ch = fgetc(p_file);
printf("%c ", ch);
//rewind(p_file);
fseek(p_file, -2, SEEK_END);
ch = fgetc(p_file);
printf("%c ", ch);
printf("\n");
fclose(p_file);
p_file = NULL;
}
return 0;
}
/*
变长参数函数练习
*/
#include <stdio.h>
#include <stdarg.h>
int max (int cnt, ...) {
int ret = 0, loop = 0;
va_list v;
va_start(v, cnt);
for (loop = 0; loop < cnt; loop++) {
int value = va_arg(v, int);
if (value > ret) {
ret = value;
}
}
va_end(v);
return ret;
}
int main() {
printf("最大数字是%d\n", max(3, 6, 32, 17));
printf("最大数字是%d\n", max(4, 2, 9, 7, 3));
return 0;
}
static void trace(const char *format, ...){
FILE *fp = NULL;
va_list args;
fp = fopen("/var/tmp/whj.txt", "a+");
if (fp){
va_start(args, format);
vfprintf(fp, format, args);
fflush(fp);
va_end(args);
fclose(fp);
}
}
*/
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[20] = {0};
int value = atoi("328");
double d = atof("4.78");
printf("value是%d\n", value);
printf("d是%lg\n", d);
printf("%d %lg\n", value, d);
sprintf(str, "%d %lg\n", value, d);
printf("%s", str);
value = 0;
d = 0.0;
sscanf(str, "%d %lg", &value, &d);
printf("value是%d,d是%lg\n", value, d);
return 0;
}
分享到:
相关推荐
C语言基础知识PPT 共十一章知识内容 适合大一初学C语言者期末复习/考前突击 第一章绪论 第二章C数据类型 第三章简单的简单的算术运算和表达式 - new.ppt 第04章-键盘输入和屏幕输出 - new.ppt 第05章-网站习题.ppt ...
在本课程"C语言进阶十一课"中,我们将深入探讨C语言的核心概念和技术,逐步从基础知识过渡到高级主题。这是一门专为初学者设计的教程,旨在帮助新接触编程的学员快速掌握C语言,从而开启他们的编程之旅。 C语言是一...
### C语言基础面试知识点解析 #### 一、Continue、Break和Return的区别 1. **Continue**: 当在循环中遇到`continue`语句时,当前循环的剩余部分将被跳过,控制权直接传递到循环的下一个迭代。例如,在`for`循环中...
C语言基础知识归纳 以下是对C语言基础知识的归纳总结,涵盖了C语言的基本概念、变量、数据类型、运算符、控制结构、函数、数组、字符串、指针、结构体、文件输入/输出、预处理命令等方面。 一、基本概念 * C语言...
### C语言基础知识点详解 #### 一、C语言概述 C语言是一种通用的编程语言,因其高效性、灵活性和简洁性而被广泛应用于系统编程、嵌入式开发、操作系统开发等多个领域。它由贝尔实验室的丹尼斯·里奇在1972年左右...
以下是对C语言基础知识的详细说明: 一、程序构造 C语言的程序结构包括三种基本构造:顺序构造、选择构造(分支构造)和循环构造。顺序构造按照代码的顺序依次执行;选择构造通过条件判断决定执行哪一部分代码,如...
C语言以其强大的功能和灵活性,成为了计算机科学教育的基础课程之一。下面将详细讨论C语言的基础知识。 一、C语言简介 C语言由Dennis Ritchie在1972年于贝尔实验室开发,它以BCPL(Basic Combined Programming ...
C语言是一种广泛应用于...通过本教程的学习,你将逐步了解和掌握C语言的基础知识,并能编写出简单的C程序。随着实践的增加,你将能够驾驭更复杂的编程任务,实现自己的程序设计目标。祝你在C语言的学习之旅中取得成功!
### C语言基础教程知识点梳理 #### 一、引言 - **C语言简介**: - **起源**:C语言最初是由丹尼斯·里奇在20世纪70年代为重写UNIX操作系统而开发。 - **特点**: - **简洁性**:语法结构简单,易于理解和学习。 ...
本教程将深入浅出地介绍C语言的基础知识,帮助初学者快速入门。 一、C语言简介 C语言由Dennis Ritchie于1972年在贝尔实验室开发,起初用于Unix操作系统的编写。其语法简洁明了,执行效率高,被广大程序员所喜爱。...
### C语言、Ubuntu、脚本基础知识整理 #### 一、嵌入式Linux C语言开发工具 **1.1 嵌入式Linux编译器Vi的使用** **1.1.1 vim常用命令** - **替换文本命令**: `:%s/str1/str2/g` 表示用 `str2` 替换正文中出现的...
这本书以通俗易懂的语言,系统地介绍了C语言的基本概念、语法结构以及编程技巧,旨在帮助读者快速掌握C语言编程基础。 一、C语言概述 C语言是一种结构化编程语言,具有高效、灵活、可移植性强等特点。它既能进行...
本压缩包“C语言实验答案1.1-15.3”包含了从基础到进阶的C语言实验题目及对应的解答,覆盖了C语言的关键知识点。 1. **C语言概述**:C语言是由Dennis Ritchie在贝尔实验室开发的一种过程式编程语言。它的设计目标是...
十一、函数指针 函数指针是 C 语言中实现动态调用的重要方式。函数指针可以指向外部类型的函数。 十二、static 关键字 static 关键字可以用于全局变量和函数,限定变量和函数的使用范围仅为该源文件。static ...
十一、文件操作 C语言提供了标准输入/输出流(stdio.h)库,可以读写文本文件。了解文件打开、关闭、读写等操作是进行文件处理的基础。 十二、结构体与联合体 结构体允许我们将不同类型的数据组合在一起,形成复合...
本讲座针对的是C语言的初学者,旨在帮助他们快速掌握C语言的基础知识和编程技巧。 一、C语言简介 C语言由Dennis Ritchie在1972年开发,是贝尔实验室为UNIX操作系统设计的一种通用编程语言。它的语法简洁明了,执行...
- 实验十和实验十一重点介绍了指针,这是C语言的一大特色,包括指针的声明、赋值、解引用以及通过指针进行数据操作。 - 实验十二和实验十三介绍了结构体和共用体,它们允许我们将不同类型的数据组合在一起,形成...
根据提供的文档信息,我们可以从这份C语言测试题中提取出一...以上知识点涵盖了C语言中的一些基础概念及其应用,对于学习C语言的学生来说是非常宝贵的资源。通过练习这类题目,可以加深对C语言的理解,并提高编程能力。
本篇C语言入门PPT文档旨在为初学者提供一个全面且易懂的学习平台,帮助大家快速掌握C语言的基础知识。 一、C语言简介 C语言由贝尔实验室的Dennis Ritchie在20世纪70年代初开发,最初用于Unix操作系统的编写。由于其...