您的位置:首页 > 编程语言 > C语言/C++

C语言学习笔记11

2014-07-05 15:05 141 查看
回顾:
    1.变量的生命周期和作用域
    2.指针
   
作业:
    1.排序
   
数组名称和指针变量的区别
1.数组名称不可以被赋值,指针变量可以被赋值
2.进行sizeof计算时结果不同
3.进行取地址操作结果不同(数组名称取地址得到的数字和原数组名称代表的数字一样,但是新数字被当成二维数组看待)

使用循环操作数组时可以用指针变量作为循环变量

const关键字也可以用来声明变量
const变量是不可以被修改的(可以通过指针修改)
const用来声明指针变量的时候不允许修改使用这个指针表示的普通变量的内容,例如
const int *p_num;
const用来声明指针还有另一种用法,例如
int * const p_num;

程序在内存中是分段保存的
代码段: 所有语句转化的数字都存储在代码段中
          代码段中的内容在运行时不可以修改
         
全局段落:存放全局变量和静态局部变量
栈: 随着程序的运行不断变化
          局部变量,块变量以及形参都存储在这
          个段落里。
          每个函数在栈中有自己的私有空间
          栈中的一段区域可能在不同的时候被不
          同的函数使用
堆: 存放所有动态分配的变量
          变量必须用语句创建和销毁

字符串由一组连续的字符变量表示
第一个字符的地址可以用来表示字符串的整体
如果把这个地址记录在一个char*类型的指针变量中,则也可以用这个指正表示这个字符串
所有字符串都以'\0'作为结尾

字符串字面值是一种描述字符串的方式,例如"abc"
字面值在程序运行时被保存在专门的段落中,这个段落的内容不可以被修改
同样的字符串字面值在程序中只有一份
连续的两个字面值可以合并成一个

字符数组是另外一个表示字符串的方法
包含'\0'字符的数组都可以当成字符串使用
字符数组可以被修改
可以使用字面值对字符数组进行初始化

C语言提供的对字符串操作的标准函数
这些函数的使用需要包含文件string.h
strlen 计算字符串中有效字符的个数
strcat 合并两个字符串
             合并后的结果字符串作为返回值
             有可能溢出
strncat 作用和strcat类型
             可以防止溢出
strcmp 可以比较两个字符串的大小
             比较的依据是ASCII码
strncmp 只比较前n个字符
strcpy 字符串拷贝功能
             拷贝完成后内存中有两份同一个字符
             串
strncpy 只覆盖前n个字符

练习:
   1.编写mystrcat函数

和字符串匹配的占位符是%s
scanf函数读字符串有危险
fgets函数可以读字符串并且不会造成溢出
fgets函数读字符串时会把最后的回车读入
每次读完字符串后都需要检查是否输入缓冲区中还有垃圾数据,如果有则需要清除

多个相关字符串的表示方式
1.使用二维数组(容易浪费空间,不灵活)
2.指针数组(不会浪费空间,更灵活)
   二级指针

主函数的第二个参数用来表示多个字符串,类型可以是指针数组或二级指针

作业:
    1.制作一个模拟登陆系统
       假设用户名是admin,密码是123456
    2.从键盘上读一组考试成绩,之间使用,分隔
       把每个成绩做成一个字符串并统一记录在一个指针数组中。(成绩数量不超过10个)
       计算出所有成绩的平均数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: