在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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\n\r",nick,year); }
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\n\r",p); // 打印十六进制的地址 printf("%d\n\r",*p); // 打印指针对应的变量 printf("%p\n\r",pp); // 打印十六进制的地址 printf("%c\n\r",*pp); // 打印指针对应的变量 }
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\n\r",letter); printf("%c\n\r",*c); char *str = "Leo"; // 指向字符数组的第一个成员 printf("%c\n\r",*str); str++; printf("%c\n\r",*str); }
4 指针可以指向字符串常量,也可以指向字符数组。
#include <stdio.h>; #include <stdlib.h>; void main(void){ char *dog = "dog"; // 指针变量指向一个字符串常量 // *dog = 'l'; // 报错 char c[] = "dog"; // 指针常量指向一个字符串数组 printf("%s\n\r",c); *c = 'l'; printf("%s\n\r",c); }
|
请发表评论