读书共享 Primer Plus C-part 7

第十章  数组和指针

1.关于二维数组跟指针

 

#include<stdio.h>


int main()

{
   int arrs [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
   int i = 0;
   for(i=0;i< 10 ;i++)

   {
     printf("%d \n",**arrs+i);

   }

}

 

   上述代码:可以说明二维数组的指针的排序以及使用

  按行打 

    

#include<stdio.h>


int main()

{
   int arrs [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
   int i = 0;
   for(i=0;i< 3 ;i++)

   {
     printf("%d \n",*(arrs[1]+i));

   }


}

 

 

按 列打

 

#include<stdio.h>


int main()

{
   int arrs [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
   int i = 0;
   for(i=0;i< 3 ;i++)

   {
     printf("%d \n",**arrs+i*4);

   }
}

 

第十一章 字符串和字符串函数
  • 关于字符串的2种表达方式
char heart[]="liuchaunwu";
char * head = "liuchuanwu";
head++; //OK
haart++; //NOK

 1 #include<stdio.h>
 2 
 3 
 4 int main()
 5 {
 6 
 7     char name[50] ={0};
 8 
 9     puts("what is your name");
10 
11     //gets(name);
12     char heart[] = "liu chuan wu";
13     char * head = "liu chuan wu";
14 
15     while(*head!='\0')
16     {
17      putchar(*head++);
18     }
19     putchar('\n');
20 
21      while(*heart!='\0')
22     {
23       putchar(*heart++);
24     }
25      putchar('\n');
26 
27 
28 
29 }

二维数组的打印

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char *str[100]={
 5    "what is your name? \0",
 6    "my name is liuchuanwu.\0",
 7    "do you love me?\0",
 8    "I am so sorry!\0"
 9 
10    };
11   int i =0;
12   for(;i<4;i++)
13   {
14    printf("%s \n",(str[i]));
15 
16   }
17 
18 }

 

  •  关于  gets fgets getchar

           gets:单个入参,不检查是否足够的空间

           fget:检查空间,针对I/O设计灵活性不足

           getchar:针对单个字符进行读取。

  •   关于strcat stncat

           strcat  字符串追加

           stncat 考虑字符串的空间问题。简单说安全与不安全的问题

  • strcmp 与strncmp

           srrcmp(str1,str2 ) str1=str2:0 str1>str2:1 str1<str2:-1

          strncmp比较前几个字符

 

posted @ 2017-07-04 20:34  刘传武  阅读(190)  评论(0编辑  收藏  举报