程序与设计第六次作业-指针

  1. 指向多维数组的指针:int(*p)[ ]
  2. 用一维数组对二位数组进行大小的比较
  3. 直接传回函数中定义的数组是不行的
  4. 如何生成随机数:
    库函数加入“stdlib.h”“time.h”
    srand((int)time(0)); 可连续随机输出
    rand()%100输出0-100中任意数
  5. 对于字符串中的单词问题,可以采用二维字符组的形式
  6. 对于最长公共子串的简便查找法
    数形结合:创建多维数组,用数值表示字符串相等情况,真的牛比
  7. 注意多维数组别写大了,不然会直接弹出结束标志
  8. 指针初始化
int *n;
int a=0;n=&a;
  1. gets_s函数用指针输入字符串需写成gets_s(a,222)
  2. strcat函数可用strlen先把长度测出来
  3. 中括号把主函数分段
  4. 如何用指针对字符串排序?
    用strcmp比较字符串大小,strcpy交换字符串顺序
  5. 对多级指针赋初值
    采用诸如金字塔赋值法
int a =100;
int *p1 = &a;
int **p2 = &p1;

int *p;
*p=5;

是错误的
14. 不能直接改变指针变量的值,如使用

int *p;
p++;

是错误的
15. 字符串指针与数组指针区别
a.赋初值区别

char *a="fuck you";
char str[]={"fuck you"};

b.数组指针是地址,字符串指针是内存空间
16. 函数体中指针如果指向了常量,不能再对其进行修改,如:

char *p="fuck";
  1. 对指针数组的解释
int a[2][4];
int (*p)[4]=a;

二维数组名本质上是一个数组指针;
18. 对指针进行初始化,不要让两个指针指向同一个变量,不然会同时变化
19. 对变量进行改变只能用指针
20. 动态生成数组:

define"malloc.h"
int *num;
int num_len;
num=(int*)malloc(sizeof(int)*num_len);
  1. 在函数内动态申请内存并传回
    需使用多级指针
void GetMemory2(char **p, int num)
{
     *p = (char *)malloc(sizeof(char) * num);
}
void Test2(void)
{
     char *str = NULL;
     GetMemory2(&str, 100);      // 注意参数是 &str,而不是str
     strcpy(str, "hello");     
     cout<< str << endl;
     free(str);//释放内存     
}
  1. 关于getchar输入符的使用
    getchar可用来去掉字符读进去一次,后移一次。
    一个输入单词的代码串如下,注意ch的赋值
char word[50][50],ch=0;
 int i,j;
    for(i=0;ch!='\n';i++)//输入字符串
 {
  ch=0;
  for(j=0;ch!=' '&&ch!='\n';j++)
  {
      ch=getchar();
   if(ch==' '||ch=='\n')continue;
   word[i][j]=ch;
  }
  word[i][j-1]='\0';
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值