C语言程序设计整理(2)

字符数组

  1. char ‘\0’ 表示字符串的结束,结束符。

字符串四种输出方式

  1. 输出一:循环+%c

    不同于整型数组的遍历,字符串的遍历一般需要两个条件:

    • 不越界
    • 结束符判断
for(i=0;i<10&&arr[i]!='\0';i++)
{
    printf("%c",arr[i]);
}
好处: 
1. 排除'\0'输出可能
2. 减少'\0'后无意义元素的输出。

 2. 输出二:%s

printf("%s\n",arr);
//arr为地址常量不需要&取地址

这种方法有可能越界,只判断结束符,不判断数组长度。

3. 输出方法三与四: String.h
 一些专门用于输出方法的头文件string.h
 

puts(arr);
//puts会自动在最后输出一个\n
putchar(arr[i]);

接收同理。

gets(str);
//可以以接收空格,以回车结束。

例:接收字符数组防越界

for(i=0;i<10;i++)
{
    str[i]=getchar();
    if(str[i]=='\n')
    {
       str[i]='\0';
       break;
    } 
}
if(i==10)
{
  str[i-1]='\0';
}

地址与指针

i=(i+1)%10(个数)
//让一个操作首尾连接

arr+n–>arrn*sizeof(数组的元素类型)
arr+n->&arr[I]
例如

for(i=0;i<10;i++)
{
    scanf("%d",arr+i);
}
//取地址中的数据*

*(arr+n)==arr[n] 除定义情况,其他完全相等
*&(arr+n)=&arr[n]->arr+n=&arr[n]

int a=10;//p=&a;p是的地址,*p就是变量a
int *p=&a;//*p=a;(*p)++->a++

int *p;//指针变量未初始化,为野指针
int *p=0;
//null就是0型,0x0地址处不能访问,为空指针。

你可能感兴趣的:(C语言,笔记)