今天是技术类书籍阅读的第一天,所读的书是《C和指针》,因为我对指针的理解比较差劲,希望能够通过该书加强自己对指针的理解,从而加深对C语言整个的理解,以下是我所整理的,认为比较重要的知识点
scanf()函数的使用方法和返回值
scanf()函数中,逗号后面的要输入数据的变量,都需要加入取地址操作符&,但是数组前面不需要加入。如果是数组中的某个特定的元素,用下标表示,就要加上,比如说&arr[5]。
scanf()函数是标准输入函数,会从你的键盘中读取输入的值,并存储在相应的变量中。scanf()函数的返回值是成功读取的数值的个数
num += 1 和 num = num+1和num++
num += 1 和 num = num+1和num++是相同的
puts函数
puts()函数的作用是把字符串写到标准输出并在末尾添上一个换行符
数组名当作函数参数的意义
当数组名作为参数时,传递给函数的实际上是一个指向数组起始位置的指针,也就是数组在内存中的地址
for循环
for循环一句包含3个表达式,并且这三个表达式都是可选的
1. 第一个表达式是初始部分,在循环开始执行之前会执行一次
2. 第二个表达式是测试部分,它在循环每执行一次之后都要执行一次
3. 第三个表达式是调整部分,他在每次循环执行完毕后都要执行一次
strchr()函数的作用
strchar()函数的作用是在字符串内进行搜索的函数,它的第一个参数是一个字符串,第二个参数是一个字符,如果字符串中包含该字符,则返回该字符在该字符串中第一次出现的位置的地址,如果失败则返回一个NULL指针

(其实这个函数就像strstr()函数一样)
函数中的数组名
函数中的数组名具有传址调用的意思(毕竟数组名是数组首元素的地址)
printf函数和scanf函数
printf()函数是格式化输出函数,scanf()函数是格式化输入函数
编程练习1.2
#include <stdio.h>
int main (void)
{
int ch = 0; //变量ch用来接受字符
int line = 0; //行号
int line_beginner = 1; //行首标识符吗,标识是否是行首
while((ch = getchar()) != EOF) //输入一个字符到ch
{
if(line_beginner == 1) //判断是否在行首
{
line++; //行数增加
printf ("%d ",line); //打印对应的行号
line_beginner = 0; //将行首标识符赋值为0,以便打印后面的字符
}
putchar(ch); //输出字符ch到标准输出(屏幕)
if(ch == '\n') //如果到了行尾(ch = getchar()会接受字符'\n')
{
line_beginner = 1; //开启下一行,并将行首标识符设置为1
}
}
return 0;
}






