① 求c语言自学教材和视频,本人0基础!
Chapter2 Getting Started
§ 1. A SIMPLE EXAMPLE
This program prints outthe message “This is a C program”
Example 1:
#include <stdio.h> //包含头文件,标准输入输出头文件 standard input output
//#include “circle.h”
<>系统头文件
“”用户自定义头文件
void main() 参数:程序的输入数据
//返回值:函数的计算结果。void:无返回值
{
printf("This is a C program\n");//标准输出语句
}//函数体
main函数(主函数)是c语言程序的入口。
\n 回车符
l Every C program contains a functioncalled main. This is the start point of the program.
l #include <stdio.h> allows the program to interactwith the screen, keyboardand filesystem of your computer. You will findit at the beginning of almost every C program.
l main() declares the start of the function, while the two curly brackets show the startand finish of the function. {}表示main函数的起止点。
l printf("This is a C program\n");//把双引号内的文本,打印到屏幕上。
\n打印一个回车符。
prints the words on thescreen. The text to be printed is enclosed in doublequotes. The \n at the end of the texttells the program to print a newline as part ofthe output.
l C is case sensitive(大小写敏感), that is, it recognises a lower case letter and it'supper case equivalent as being different.
例:inta 和 int A是两个不同的变量。
编译(目标文件 .obj)
->链接(把多个目标文件合成为一个可执行文件 .exe)
Compiling in Linux 编译:把源代码文件,
转换为机器代码文件(可执行文件)。
编译器:完成编译工作的程序。
gcc is the compiler from Gnu
$ gcchello.c
gcc:Unix/Linux平台上的编译器,把源文件编译成可执行文件。
把高级语言翻译成二进制的机器语言。
hello.c 程序员编辑的源文件。
a.out 是由gcc编译器生成的可执行文件,a.out是默认的文件名。
指定生成的可执行文件的名字 gcc hello.c –o hello
The compilation will proceed silently, andmake an executable file called a.out.
Running in Linux 运行可执行文件
./a.out
编辑-->编译-->执行
Result:
This is a C program
§ 2. Comments
注释:给代码进行解释说明,本身不是代码。
编译时,编译器会忽略注释的内容。
加强程序代码的可读性。说明书。
Example 2:
void main()
{
int Counter=0; /* Initalise Counter */
/* a comment
*/
/*
Another comment
*/
}
//注释,不能折行
//
/*This
Is
A c
*/可以加多行注释。
l A comment starts with a /* and ends with */.
Chapter3 Data Types(数据类型)
andVariables(变量)
§ 1. VARIABLE AND BASICDATA TYPES变量和基本数据类型
As a programmer, you will frequently wantyour program to "remember" a value. For example, if your program requests a value fromthe user, or if it calculates a value, you will want to remember it somewhereso you can use it later. The way your program remembers things is by using variables. For example:
int b;
创建了一个int型(整型)的变量b,来存储数值。
l This line is to create a variable called b that is ableto hold one integer value.
l A variable has a name(变量名) (in this case, b) and a type(类型) (in this case, int, an integer).
l You can store a valuein b by saying something like:
b = 5;//用赋值语句,把一个值存储到变量里。
变量的本质:内存里的存储单元。
You can use the value in b by saying something like:
printf("%d", b);
In C, there are several standard types for variables:
c语言的基本(标准、内建)数据类型。
bool - true (真)or false(假), typically stored in one byte
//标准c语言没有布尔型
int - integer (whole number) values 整型
float - floating point values (单精度)浮点型,带小数点。1.1 2.2
char - single character values (such as ‘m’ or’Z’) ‘0’
字符型,存储单一的字符,用单引号来包围。每一个字符对应一个ASCII码
“”
There are also several variants on these types such as double,unsigned int, long, unsigned long, bool.
Type(数据类型)
Size(在内存中所占字节数)
char, unsigned(无符号) char,
signed(有符号) char
1 byte
short , unsigned short 短整型
2 bytes
int, unsigned int 无符号整数(正整数)
4 bytes(32位机上)
long, unsigned long 长整型
4 或8 bytes(长度大于等于int)
float 单精度浮点数
4 bytes
double 双精度浮点数
8 bytes或 8bytes(64位机)
sizeof(数据类型名),显示每种类型的字节数。
Variable Names 变量命名
Every variable has a name and a value. The name identifies the variable, the valuestores data.
l Every variable name in C must start with a letter, therest of the name can consist of letters, numbers and underscore characters.
每个变量必须以字母或下划线作为开头,由字母、下划线、数字构成。
l C recognises upper and lower case characters as being different.
大小写是两个不同的字符。 X1和 x1是两个变量
l Finally, you cannot use any of C's keywords like main,while, switch etc as variable names.
不能用c的关键字做变量名。 int main, MAIN,Main
Examples of legal variable names include
_x result outfile bestyet
_x1 x2 out_file best_yet _name
power0 impetus gamma hi_score
Variable Initialization变量初始化:给变量赋最初的值。
初始化的三种方式
• At compile(编译)time in the declaration:
//声明的同时进行初始化。(编译时发生)
e.g. int x=5;
char code = ‘B’;
int i = 0;
•At run time(运行时) by an assignment: //运行时用赋值表达式初始化
//int x; 声明x
e.g.例如 x = 5;
• At run time by an input statement: //用用户输入数值进行初始化
e.g. scanf(“%d”,&x);//标准输入语句
Constants 常量
To define a constant define a“variable” (usually, U.C.) with keyword:
const
在变量前加上const关键字,成为常量。
常量的值,一经初始化就不能改变。
常量必须在声明的同时初始化。
This is how it works:
const float PI =3.1415926;
This does NOT work:
const float PI = 3.0;
PI = 3.1415926; /* not allowed to change it */
Standard Input andOutput 标准输入输出
Output
Requires:
#include<stdio.h>
printf(formatstring, data list);
格式化描述串,待打印的变量列表。
int a = 10;
printf(“Thisis a C program”);
printf(“a = %d \n”,a);
Field specifiers are inside theformat string
FieldSpecifiers(格式转换说明,%打头,表明此处要声明一个指定数据类型的值。)
\ 转义字符,
\n 回车
\t 打印一个Tab键(一般为8个空格长度)
\r 换行
Type
Example
char
%c
short int
int
long int
%hd
%d
%ld
float
double
%f
%f 或 %lf
待打印的变量的个数,
要和描述符的个数匹配,
并且数据类型也要匹配。
Examples:
printf(“%d %c%f\n\t”, 23,’A’,4.23);
23 A
4.23
每个字符都对应一个整型的ASCII码。
② C语言全套教学视频
C语言程序设计
若资源有问题欢迎追问~
③ 谁有C语言的教学视频呢,能推荐一下吗
你也是自学的吧?我和你一样,当初找了很多,像是什么郝斌、曾怡、金文、康辉等等,这些我都看过,但是看了一点就就看不进去了,根本跟不上听不懂,实在太啰嗦了,根本听不出哪些是主要的,就和照着课本读没什么区别。现在我看的是夏老师的,就是依据谭浩强教材讲的,感觉还不错,一听就能听懂,而且像是之前没理解的概念,这个用比喻一下子我就理解了,比如我现在正看到的数组变量,就比喻成一排装东西的盒子,还有很多这样的比喻。
④ 谁有关于c语言的视频教程,初学到高级的,最好是百度网盘资料,谢谢!
《C语言视频教程》网络网盘高清资源免费在线观看
链接:https://pan..com/s/1QAWDHhzlj0ytuxnPZiBYMw?pwd=p0l9
作品相关介绍:
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。
⑤ 急求C语言完整的网上教学视频!!
http://www.enet.com.cn/eschool/video/c21shipin/
希望对你有帮助!另外,如果不是特殊情况,建议你不要下C语言视频,就在线看吧!因为C语言视频都是稀有资源,下起来会很慢的,我试过!
⑥ c语言教学视频
我有打包好的 我发你哈 我现在就正在看 是夏老师的 依据的是谭浩强的教材 感觉比较好 比较适合像我这样0基础的 这个最吸引我的地方就是讲的一听就能听懂 而且很多概念都有形象的比喻 例如把变量比如成盒子 把变量赋值比喻成往盒子里放东西等等很多这样的比喻 感觉特别容易理解
⑦ 大家有没有关于C语言,的视频免费教学网站!自学!
优酷网上有c语言视频教程全集,搜一下就出来了。建议LZ:1.结合教材,边看边做笔记。 2.课后用TC.exe 上机练习。最 常用的有Turbo C 2.0、Turbo C++ 3.0、Visual C++等 我用的教材是 C程序设计(第三版)、清华大学出版社的。类似的教材在书店里有不少。 另外C++是面向对象的语言,C语言是面向过程的,C++学起来比C语言困难得多,所以不太适合程序设计的初学者。因为面向对象的基础是面向过程,因此建议LZ先打好基础,从C语言开始 。C程序学起来不简单。希望LZ能成功。
⑧ 想自学C语言,大家帮帮忙
去"天天bt"上下载个csf视频教学资源,
http://www.ttbt.cn/down.asp?id=17074&no=1
边看教学边学不错.
另外,我觉得谭浩强编的"c语言程序设计"那本书不错.
不过,如果你想成为好的程序员,建议你修好离散数学,编译原理,线性代数等课程
C语言学习心得
前言
指针,一直被认为是C语言中的精华。只有掌握了指针,你才能说你学会了C语言。
相当初,我是把指针这一章足足看了三遍才算是“学了这一章”下面的文字是阿容
写的,对我学习C语言的指针帮助很大。好东西不敢独享,今天把它贴出来,希望
大家也会有所帮助。
第一章。指针的概念
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的
类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让
我们分别说明。
先声明几个指针放着做例子:
例一:
(1)int *ptr;
(2)char *ptr;
(3)int **ptr;
(4)int (*ptr)[3];
(5)int *(*ptr)[4];
如果看不懂后几个例子的话,请参阅我前段时间贴出的文章<<如何理解c和c
++的复杂类型声明>>。
1。 指针的类型。
从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就
是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的
类型:
(1)int *ptr; //指针的类型是int *
(2)char *ptr; //指针的类型是char *
(3)int **ptr; //指针的类型是 int **
(4)int (*ptr)[3]; //指针的类型是 int(*)[3]
(5)int *(*ptr)[4]; //指针的类型是 int *(*)[4]
怎么样?找出指针的类型的方法是不是很简单?
2。指针所指向的类型。
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译
器将把那片内存区里的内容当做什么来看待。
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符
*去掉,剩下的就是指针所指向的类型。例如:
(1)int *ptr; //指针所指向的类型是int
(2)char *ptr; //指针所指向的的类型是char
(3)int **ptr; //指针所指向的的类型是 int *
(4)int (*ptr)[3]; //指针所指向的的类型是 int()[3]
(5)int *(*ptr)[4]; //指针所指向的的类型是 int *()[4]
在指针的算术运算中,指针所指向的类型有很大的作用。
指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越
来越熟悉时,你会发现,把与指针搅和在一起的“类型”这个概念分成“指针的
类型”和“指针所指向的类型”两个概念,是精通指针的关键点之一。我看了不
少书,发现有些写得差的书中,就把指针的这两个概念搅在一起了,所以看起书
来前后矛盾,越看越糊涂。
3。 指针的值,或者叫指针所指向的内存区或地址。
指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是
一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为
32位程序里内存地址全都是32位长。
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si
zeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相
当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块
内存区域,就相当于说该指针的值是这块内存区域的首地址。
指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中
,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区
是不存在的,或者说是无意义的。
以后,每遇到一个指针,都应该问问:这个指针的类型是什么?指针指向的
类型是什么?该指针指向了哪里?
4。 指针本身所占据的内存区。
指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就知道
了。在32位平台里,指针本身占据了4个字节的长度。
指针本身占据的内存这个概念在判断一个指针表达式是否是左值时很有
============================
7月11日
c语言心得一
2.数据输出
c语言不提供输入输出语句,输入输出操作是由c的库函数完成。但要包含头文件stdio.h。
putchar( ) 向终端输出一个字符
printf( )的格式字符:
① d格式符 用来输出十进制整数
%d 按整型数据的实际长度输出
%md 使输出长度为m,如果数据长度小于m,则左补空格,如果大于m,则输出实际长度
%ld 输出长整型数据
② o格式符 以八进制形式输出整数
③ x格式符 以十六进制形式输出整数
④ u格式符 用来输出unsigned型数据,以十进制形式输出
⑤ c格式符 用来输出一个字符
⑥ s格式符 输出一个字符串
%s 输出实际长度字符串
%ms 输出的串占m列,如果串长度小于m,左补空格,如果大于m,实际输出
%-ms输出的串占m列,如果串长度小于m,右补空格,
%m.ns 输出占m列,但只取字符串中左端n个字符并靠右对齐
%-m.ns m、n含义同上,靠左对齐,如果n>m,则m自动取n值
⑦ f格式符 以小数形式输出实数
%f 整数部分全部输出,小数部分输出6位
%m.nf 输出数据共占m列,其中有n位小数。如果数值长度小于m,左补空格
%-m.nf 同上,右补空格
⑧ e格式符 以指数形式输出实数
%e 系统指定6位小数,5位指数(e+002 )
⑨ g格式符 输出实数,根据数值大小,自动选f格式或e格式
3.数据输入
getchar( ) 从终端输入一个字符
scanf( 格式控制,地址列表) 标准C scanf中不使用%u,对于unsigned型数据,以%d或%o或%x输入。%后的*,用来跳过它相应的数据。输入数据时不能规定精度如scanf( "%7.2f", &a );是不合法的。
部分字符串处理函数
puts(字符数组) 将一个字符串输出到终端。
gets(字符数组) 从终端输入一个字符串到字符数组,并且得到一个函数值,为该字符数组的首地址
strcat(字符数组1,字符数组2) 连接两个字符数组中的字符串,数组1必须足够大。
Strcpy(字符数组1,字符串2) 将字符串2拷贝到字符数组1中。
Strcmp(字符串1,字符串2) 比较字符串,相等返回0,字符串1>字符串2,返回正数,小于返回负数。
Strlen(字符数组) 求字符串长度。
Strlwr( 字符串) 将字符串中的大写字母转换成小写
Strupr( 字符串) 将字符串中的小写字母转换成大写
以上是一些比较常用的字符串处理函数。
动态存储变量与静态存储变量
从变量值存在的时间(生存期)角度来分,可分为静态存储变量和动态存储变量。静态存储指在程序运行期间给变量分配固定的存储空间,动态存储指程序运行期间根据需要动态的给变量分配存储空间。
C语言中,变量的存储方法分为两大类:静态存储类和动态存储类,具体包括:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。
1) 局部变量的存储方式
函数中的局部变量如不作专门说明,都之auto的,即动态存储的,auto可以省略。局部变量也可以定义为static的,这时它在函数内值是不变的。静态局部变量如不赋初值,编译时系统自动赋值为0,动态局部变量如不赋初值,则它的值是个不确定的值。C规定,只有在定义全局变量和局部静态变量时才能对数组赋初值。为提高执行效率,c允许将局部变量值放在寄存器中,这种变量叫register变量,要用register说明。但只有局部动态变量和形式参数可以作为register变量,其它不行。
2) 全局变量的存储方式
全局变量在函数外部定义,编译时分配在静态存储区,可以在程序中各个函数所引用。多个文件的情况如何引用全局变量呢?假如在一个文件定义全局变量,在别的文件引用,就要在此文件中用extern对全局变量说明,但如果全局变量定义时用static的话,此全局变量就只能在本文件中引用了,而不能被其它文件引用。
3) 存储类别小结
从作用域角度分,有局部变量和全局变量
局部变量:自动变量,即动态局部变量(离开函数,值就消失)
静态局部变量(离开函数,值仍保留)
寄存器变量(离开函数,值就消失)
(形参可定义为自动变量和寄存器变量)
全局变量:静态全局变量(只限本文件引用)
全局变量(允许其它文件引用)
从存在的时间分,有静态存储和动态存储
动态存储:自动变量(本函数内有效)
寄存器变量(本函数内有效)
形参
静态存储:静态局部变量(函数内有效)
静态全局变量(本文件内有效)
全局变量(其它文件可引用)
从变量值存放的位置分
静态存储区:静态局部变量
静态全局变量
全局变量
动态存储区:自动变量和形参
寄存器内:寄存器变量
7. 内部函数和外部函数
内部函数:只能被本文件中的其它函数调用,定义时前加static,内部函数又称静态函数。
外部函数:可以被其它文件调用,定义时前加extern,如果省略,则隐含为外部函数,在需要调用此函数的文件中,一般要用extern说明。
c编译系统在对程序进行通常的编译之前,先进行预处理。c提供的预处理功能主要有以下三种:1)宏定义 2)文件包含 3)条件编译
1. 宏定义
不带参数的宏定义
用一个指定的标识符来代表一个字符串,形式:#define 标识符 字符串
几点说明:
1) 宏名一般用大写
2) 宏定义不作语法检查,只有在编译被宏展开后的源程序时才会报错
3) 宏定义不是c语句,不在行末加分号
4) 宏名有效范围为定义到本源文件结束
5) 可以用#undef命令终止宏定义的作用域
6) 在宏定义时,可以引用已定义的宏名
带参数的宏定义
定义形式:#define 宏名(参数表) 字符串
这和函数有些类似,但他们是不同的:
1) 函数调用时,先求实参表达式值,再代入形参,而宏只是简单替换,并不求值
2) 函数调用是在程序运行时分配内存的,而宏展开时并不分配内存,也没有返回值的概念
3) 对函数中的实参和形参都要定义类型,而且要求一致,宏名无类型,其参数也没有类型。
4) 函数只有一个返回值,而宏可以得到几个结果
5) 宏替换不占运行时间,只占编译时间,而函数调用占运行时间
2. 文件包含处理
#include "文件1" 就是将文件1的全部内容复制插入到#include位置,作为一个源文件进行编译。
在#include命令中,文件名可以用" "也可以用< >,假如现在file1.c中包含file2.h文件," "表示系统先在file1.c所在目录中找file2.h,如果找不到,再按系统指定的标准方式检索目录,< >表示系统直接按指定的标准方式检索目录。所以用" "保险一点。
3. 条件编译
条件编译指不对整个程序都编译,而是编译满足条件的那部分。条件编译有以下几种形式:
1)#ifdef 标识符
程序段1
#else
程序段2
#endif
它的作用:当标识符在前面已经被定义过(一般用#define),则对程序段1编译,否则对程序段2编译。
2)#ifndef 标识符
程序段1
#else
程序段2
#endif
它的作用和#ifdef相反,当标识符没被定义过,对程序段1编译,否则对程序段2编译。
3)#if 表达式
程序段1
#else
程序段2
#endif
它的作用:当表达式值为真(非0)时,对程序段1编译,否则对程序段2编译。
http://spaces.msn.com/lxj5816778/Blog/cns!1pmxrkmy9J0DF4J21zFuHFzQ!134.entry
⑨ 请问谁有C语言基础教学视频呢或者谭浩强的视频解析
谭浩强【004】
链接:https://pan..com/s/1D9ABrVGilTPcfh9iAamcCQ
若资源有问题欢迎追问~