C语言学习笔记

C语言学习笔记,第1张

一、常量和宏定义 P5 

1.字符串用空字符‘\0‘ 来表示结束

比如:

“hello world”实际上一共有12个字符

'h' 'e' 'l' 'l' 'o' ''空格' 'w' 'r' 'o' 'l' 'd' '\0'

2.常量的类别:

①整形常量(整数):111,222,33

②实型常量(实数):3.14,5.12,8.97

③字符常量(单个字母)L, I ,J, K ,

④字符串常量(一个单词)FISH

⑤符号常量比较特殊

              --关于符号常量的特别说明:符号常量如何定义?

              定义符号常量需要宏定义,格式如下:

              #define+标识符+常量(宏定义)

             例子:

                    ①#define YEAR 2010意思就是将YEAR 定义为2010

                    ②#define MONTH 12意思就是将MONTH定义为12

二、数据类型 

1.关于sizeof

①sizeof是一个运算符

②sizeof运算符用于获得数据类型或表达式的长度

三、for语句和循环嵌套 

1.循环嵌套中格式的调整

%-2d的意思是在调整显示格式

“-”是居左的意思

“2”是2个字符的意思

2.for循环例子

当for(i=1;i<=9;i++);循环应用于计数器的情景的时候,会将i在声明的时候初始化为1

3.while和for

while语句和for语句的区别就在于使用continue的时候

4.复杂嵌套循环的理解

①多层循环嵌套的分析

分析多层循环嵌套的时候,准备纸笔,首先根据最外层循环条件入口的判断条件把表达为真的条件逐个写出,直到最内层循环,然后查看最内层循环入口条件是什么,把每一次运行结果都写出来(当然如果有大量重复的可以写省略号),这里要注意的是printf的时候是否有换行符或者累加计数,从内到外逐层分析,多次练习后掌握规律,循环千变万化,但是分析方法则是一通百通。

②实际编写程序时候如何判断用什么循环嵌套

首先要清楚记得常用的循环while   for  ,以及混合使用的其他语句,如if    switch,break 。

其他的就是模仿,编程一定要会模仿,通过模仿掌握思想

四、字符和字符串 

1.C语言没有为字符串创立一个单独的类型只有int  char  float ...

2.要使用字符串的话直接声明  char+变量名+[数值]   也就是数组

3.C语言如何处理字符串常量的呢?

      为了确定字符串在内存中结束的位置,要在字符串最后的位置加一个'\0'来表示结束问题来 

      了,   字符串常量中a[6]={.....},6是很少的,但如果要几百个字符串怎么可能数得过来,所以在        表示  的时候可以这样写a[ ]={ ......}这样表示就好了,编译器会自动统计数量也不用担心数少了         还有一种表示表示方法是a[ ] = { "fishc"}直接将要表示的字符串输入到{ }中,

       还有一种是a[ ] = "fishc"将大括号也去掉

五、拾遗 

“,”逗号的功能有两种,一种是逗号运算符,另一种是分割符。

逗号运算符开始在表达式中会把计算顺序按照从左到右来运行;

但是在表达语句中会把他作为分隔符来使用

回忆笔记1:(三元运算符)

条件运算符语法:exp1?exp2:exp3;

--- exp1是条件表达式

--- 如果结果为真,返回exp2

--- 如果结果为假,返回exp3

回忆笔记2:(goto语句)直接跳转到标签的位置

语法:goto 标签;例如在很多层的循环嵌套中想要跳转出来,就在一条分支中写goto lable;,然后在你想要指定的地方写lable :+执行的语句

做作业后感

第0题可以自己写出来,但是思考了很久,表现一般;

第1题写出来后结果不正确,参考了答案好后恍然大悟,根据题的逻辑要能正确判断出该函数,是用入口判断合适还是出口判断合适,比如:

4道题只能做出两到,找最大质数程序失败,找回文数失败,先看后期课程,然后回来二战

六、指针 

①指针变量和普通变量不同:

指针变量存放的是一个地址,普通变量存放的是数据;

②指针变量也有数据类型:

指针变量的 数据类型 就是 存放的地址 指向的 数据类型

③指针变量也是有地址的

④指针

七、指针和数组 

例子:

int a

int *p = &a;

scanf("%d",p);

分析:

指针 p 存放了 变量a 的地址,所以在进行 scanf *** 作的时候,指针 p 前无需再放 & 取地址符。

根据以上分析我们可以联想到 数组,

例子:

chr str[128];

printf ("请输入鱼C的域名");

sacnf ("%s",str);

printf ("鱼C工作室的域名是:%s\n", str)

分析:

在这段程序中同样可以看到在执行 sacnf 的时候,str 前同样没有用&取地址符,

sacnf ("%s", str)

可以推测 str 是数组的指针,str存放了数组首元素的地址

指针法表示数组,访问的时候直接用指针

char *str = "I love FishC . com!";

int i , length;

length = strlen(str);

for(i= 0;i

{

printf ( " %c”,str[ i ] );

}

①定义char型的指针,把它指向一个字符串;

②用strlen( )函数计算出该字符的字长;

③用for循环判定遍历所有字符

④遍历的时候直接用下标法逐个打印出所有字符;⑤至此该字符串可以顺利打出

八、指针数组和数组指针

1.指针数组

格式例子:int* p[5] 指针数组

是一个数组,每一个元素存放一个指针变量

指针数组的初始化;

指针数组和数组指针 P23 - 15:44

2.数组指针(指向数组的指针)

格式例子:int(*p2)[5]数组指针

是一个指针,它指向的是一个数组

数组首元素的地址=数组名=数组地址;

指针指向的是一个变量;

int* P= &a (指针变量P取a 的地址)

*P=a (解引用P,得到的值就是a,解引用就是取地址的逆运算)

int temp [ 5 ] = { 1,2,3,4,5 };

int *p = temp ;

这里指针P指向的是数组的第一个元素的地址

第一个元素的地址=数组名=数组的地址,相等但概念不同;

课后作业笔记:

由于数组的下标法跟指针法访问是等价的,所以

b[-2] 相当于 *(b - 2),这样也就不难理解啦

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/662714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存