C语言小程序

1 scanf、printf是stdio.h头文件中定义的两个函数。

#include "stdio.h";
#include "stdlib.h";

void main(void){
    char nick[10]; // 字符数组
    int year;
    scanf("%s %d",&nick,&year); // &取地址
    printf("Hello %s %d

",nick,year); 
}

C语言小程序

2  指针的值是内存单元的地址(数值)。

  int *p定义了一个指向整形变量的指针, char *p定义了一个指向字符型变量的指针。

    &是取地址,*是取值。

#include "stdio.h";
#include "stdlib.h";

void main(void){

    int a = 123,*p = &a;
    char c = 'c',*pp = &c;

    printf("%p

",p); // 打印十六进制的地址
    printf("%d

",*p); // 打印指针对应的变量

    printf("%p

",pp); // 打印十六进制的地址
    printf("%c

",*pp); // 打印指针对应的变量

}

C语言小程序

3 指针可以常量,也可以是变量。

 数组名是指针常量,不能修改。

   指针变量可以修改,例如可以进行++或--运算,指向后一个或前一个变量。

#include <stdio.h>;
#include <stdlib.h>;

void main(void){
    // 数组名是指针常量,不能修改
    char man[] = "Jack Doson";
    printf("%s",man);
    // 定义指针变量,可以修改
    char letter = 'a';
    char *c = &letter; // 指向字符型变量
    printf("%c

",letter);
    printf("%c

",*c);
    char *str = "Leo"; // 指向字符数组的第一个成员
    printf("%c

",*str);
    str++;
    printf("%c

",*str);
}

C语言小程序

4 指针可以指向字符串常量,也可以指向字符数组。

#include <stdio.h>;
#include <stdlib.h>;

void main(void){
    char *dog = "dog"; // 指针变量指向一个字符串常量
    // *dog = 'l'; // 报错
    char c[] = "dog"; // 指针常量指向一个字符串数组
    printf("%s

",c);
    *c = 'l';
    printf("%s

",c);
}

C语言小程序